Bash -x文件和电子邮件

我有一个脚本,发出了很多的命令。 我希望将这个脚本(错误和stdout)的输出保存到一个文件中,但是我也希望将执行的实际命令保存到文件中(如bash -x所示)

我试过了:

bash -x script.sh> log.txt

无济于事

任何帮助表示赞赏。 谢谢

我已经testing了以下给它你正在寻找什么,下面的命令会将stdout / stderrorlogging到文件output.txt

bash -x script.sh&> output.txt

桑迪普

我相信你的问题是,当你的脚本的输出被发送到标准输出时,“bash -x”的输出被发送到stderr。

当你执行:

  bash -x script.sh > output.txt 

…脚本的正常输出被发送到redirect的文件,脚本命令(来自-x)继续显示在terminal屏幕上。

为了将stderr和stdout发送到同一个stream,您需要在另一个之上复制一个stderr和stdout。 这是使用shell文件描述符重复句法“eg 2>&1”)完成的,如下所示:

  bash -x script.sh > output.txt 2>&1 

这个语法在文件描述符#1(标准输出)的顶部复制文件描述符#2(stderr)…这会导致两个stream都被redirect到输出文件。