我有一个脚本,发出了很多的命令。 我希望将这个脚本(错误和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到输出文件。