Tha*_*nos 35 bash io-redirection
我有一个bash脚本set -x.是否可以将此脚本的调试打印及其所有输出重定向到文件?理想情况下,我想做这样的事情:
#!/bin/bash
set -x
(some magic command here...) > /tmp/mylog
echo "test"
Run Code Online (Sandbox Code Playgroud)
得到了
+ echo test
test
Run Code Online (Sandbox Code Playgroud)
在/ tmp/mylog中输出,而不是在stdout中输出.
bce*_*ary 53
这就是我刚用Google搜索的内容,我记得自己前一段时间使用过这个...
使用exec重定向脚本中所有命令的标准输出和标准错误:
#!/bin/bash
logfile=$$.log
exec > $logfile 2>&1
Run Code Online (Sandbox Code Playgroud)
有关更多重定向魔术,请查看Advanced Bash Scripting Guide - I/O重定向.
如果你也想看看在终端上的输出和调试除了在日志文件中,看到重定向标准输出复制到从bash脚本本身的日志文件.
如果你要处理的目标set -x独立的正常跟踪输出STDOUT和STDERR,看到的bash存储组的输出-x到日志文件.
Pet*_*esh 13
在-x输出为标准错误,所以要记录它做的事:
set -x
exec 2>/tmp/mylog
Run Code Online (Sandbox Code Playgroud)