我想将命令“apachectl configtest”的输出记录到文件中。所以我尝试了以下命令:
root@ubuntu:~# echo $(apachectl -t) >> /tmp/apache_config_check
[Sun Feb 21 14:35:23.614947 2016] [proxy_html:notice] [pid 29249] AH01425: I18n support in mod_proxy_html requires mod_xml2enc. Without it, non-ASCII characters in proxied pages are likely to display incorrectly.
Syntax OK
但它给出了空输出:
root@ubuntu:~# cat /tmp/apache_config_check
root@ubuntu:~#
我还尝试了命令本身的变体:
root@ubuntu:~# apachectl -t >> /tmp/apache_config_check
和tee的变体:
root@ubuntu:~# $(apachectl -t) | tee /tmp/apache_config_check
没有运气。
我真的不知道管道输出的任何其他方法,也不知道为什么上面的命令失败了。这是基本的吗?
答案 0 :(得分:2)
问题是apachectl
正在将其输出发送到STDERR而不是STDOUT。因此,您需要按如下方式重定向STDERR:
apachectl -t > /tmp/apache_config_check 2>&1
2>&1
是shell-script magic"将文件描述符2(STDERR)上的输出重定向到文件描述符1(STDOUT)"。