如何执行shell脚本并将输出保存到文件中,同时仍然在屏幕上同时显示结果(STDOUT和STDERR),并在脚本结束后执行另一个命令?我应该使用nohup吗?
答案 0 :(得分:0)
如果必须使用nohup,则可以在脚本中使用分号来表示在最后一个命令完成后应该执行a命令,如下面的test.sh示例所示:
#!/bin/bash
find / -name "*.sh" ; echo END_OF_COMMAND
....他们使用&使用'tail -f nohup.out'在后台运行脚本,以在脚本运行时在屏幕上显示输出:
$ nohup ./test.sh & tail -f nohup.out
这样,您的脚本将在后台执行序列,同时输出仍显示在屏幕上。
然而,正如指出使用tee
将是最好的方法,在显示和重定向到STDOUT和STDERR文件的同时你可以使用带有以下参数的tee:
$ ./test.sh ; echo END_OF_COMMAND 2>&1 | tee output.log