Das*_*770 8 command-line bash redirect
我正在做作业,我有一个关于一行的问题。我不明白这>&2是什么意思:
if test -d $2
then echo "$2: Is directory" >&2 ; exit 21
fi
Run Code Online (Sandbox Code Playgroud)
Win*_*nix 10
它只是向 显示消息“ /blah/blah/: Is directory” stderr。也称为标准误差,用 表示&2。
没有&2消息显示在 上stdout。也称为标准输出,用 表示&1。
&>2可以在此处找到有关显示消息的更多详细信息:
在您的命令发布,这两个消息stdout,并stderr会出现在终端屏幕上。然而,一些应用程序会分离stderr消息并执行特殊处理。
大多数人不会费心将echo错误消息重定向到,>&2但从技术上讲,这是正确的做事方式。
有关更多阅读stdin,stdout以及stderr从用户或系统管理员的角度,请参阅:
对于分别为 &0、&1 和 &2 的 stdin、stdout、stderr 的程序员观点,请参见:
文件描述符 1 是stdout,文件描述符 2 是stderr。
使用>重定向输出是一样的使用1>。这表示重定向stdout(文件描述符 1)。
通常,我们重定向到一个文件。但是,我们可以使用>&重定向到stdout(文件描述符 1)或stderr(文件描述符 2)来代替。
因此,要将stdout(文件描述符 1)重定向到stderr(文件描述符 2),您可以使用>&2.
想要查询更多的信息:
| 归档时间: |
|
| 查看次数: |
11463 次 |
| 最近记录: |