我有多个vagrant provisions(shell脚本),希望将所有命令输出重定向到文件,同时保留echo
输出在stdout中。
目前我通过以下方式重定向所有输出:
exec &>> provision.log
每个条款的开头
这很好用,但是控制台没有任何输出。因此,我想将除了echo命令以外的所有内容都重定向到一个文件中。
如果有可能将所有输出(包括echo)都重定向到一个文件中,并且只在stdout中保留echo,那么这将是最好的。
结果应该如下所示:
控制台
Starting provision "master"
Updating packages...
Installing MySQL...
ERROR! check provision.log for details
provision.log
Starting provision "master"
Updating packages...
...
(output from apt-get)
...
Installing MySQL...
...
(output from apt-get install mysql-server-5.5)
...
ERROR! check provision.log for details
我知道我可以将输出重定向附加到每个命令,但那样会很混乱。
echo "Nginx version $(nginx -v)
时,它会打印出nginx -v
的第一行结果和第二行的Nginx version
。有什么办法让它们在同一行上吗? - Tomasnginx
将其写入了标准错误输出。nginx -V | cat -vte
对你显示了什么? - anubhava