我认为这是某种 io 重定向,但它看起来与手册中的示例不同。通常,我们可以通过以下行重定向脚本的标准输出:
exec 1> /var/log/a.log
但我在一个脚本中看到了这一行:
exec &> /var/log/a.log
这里的“&”是什么意思?它是标准输出和标准错误吗?
谢谢,詹姆斯
我认为这是某种 io 重定向,但它看起来与手册中的示例不同。通常,我们可以通过以下行重定向脚本的标准输出:
exec 1> /var/log/a.log
但我在一个脚本中看到了这一行:
exec &> /var/log/a.log
这里的“&”是什么意思?它是标准输出和标准错误吗?
谢谢,詹姆斯
你的猜测是对的。
exec >filename
命令重定向stdout
到指定的文件。这会将通常会转到该文件的所有命令输出发送stdout
到该文件。command &> filename
将 thestdout
和stderr
of 命令重定向到文件名。实际上,
command &>file
是另一种形式command > file 2>&1
(在版本 4、最终版本之前的 Bourne Shell 或在 Debian/Ubuntu 中使用的标准 shell Debian Almquist shell 中不可用):角色做什么
&
?这里解释得很好:在此处阅读有关 I/O 重定向的更多信息:
http://www.tldp.org/LDP/abs/html/io-redirection.html
http://www.tldp.org/LDP/intro-linux/html/sect_05_02.html#sect_05_02_01