mar*_*afm 4 bash io-redirection file-descriptors
我正在尝试将命令(stdout 和 stderr)的输出附加到现有文件中。
我想要做的是这样的:
command >>file 2>>&1
Run Code Online (Sandbox Code Playgroud)
问题是会2>>&1
引发错误,但>>file 2>>file
不会。
所以,我想我误解了重定向的工作原理,或者什么是文件描述符以及其中保存了哪些信息。
总结一下,下面两个命令有什么区别,为什么第一个不起作用,而第二个起作用?
command >>file 2>>&1 #not working
command >>file 2>>file #working
Run Code Online (Sandbox Code Playgroud)
谢谢
您想要做的是设置文件描述符 1 (stdout) 以附加到文件,然后重定向 fd 2 (stderr) 以简单地执行 fd 1 正在执行的操作。
command >>file 2>&1
Run Code Online (Sandbox Code Playgroud)
2>>&1
只是因为>>&
不是重定向运算符,您会收到错误消息。
阅读bash 手册中的重定向,特别是第 3.6.5 和 3.6.8 节
归档时间: |
|
查看次数: |
14174 次 |
最近记录: |