【问题标题】:How to print on stderr without using /dev/stderr [closed]如何在不使用 /dev/stderr 的情况下在 stderr 上打印 [关闭]
【发布时间】:2015-09-18 16:42:27
【问题描述】:

linux 命令脚本如何在不每次使用>/dev/stderr 的情况下打印警告或错误消息?

这应该很简单,但我不明白。

你能发布一个简单的例子吗?

【问题讨论】:

  • 为什么不赞成?我真的不明白所有的仇恨来自哪里,我认为这是一个提问的空间
  • 不知道“仇恨”,但这对我来说看起来不像是一个编程问题。 Unix 用法?

标签: linux command-line


【解决方案1】:

要打印到标准错误,请使用写入标准输出的命令(如 echoprintf)并将输出重定向到文件描述符 2。

echo "This goes to standard output"
echo "This goes to standard error" >&2

这是文件描述符复制运算符最常见的用法,它使前面的数字(如果省略,则为 1)所指示的描述符成为后面数字所指示的描述符的副本。

【讨论】:

  • 谢谢朋友,我不知道为什么理解这个标准对我来说这么难,尽管它看起来很简单
  • 在我看来,文件描述符处理是 shell 脚本最棘手的方面之一。
【解决方案2】:

每个 unix 进程在进程启动时总是有三个打开的​​文件描述符。

0 是标准输入

1 是标准输出

2 是标准错误

http://man7.org/linux/man-pages/man3/stdout.3.html

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 1970-01-01
    • 2021-05-23
    • 2016-12-24
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2023-02-16
    相关资源
    最近更新 更多