如何在shell脚本结束后执行命令并保存输出,同时仍然在屏幕上显示结果

时间:2018-05-28 08:58:34

标签: bash shell tee

如何执行shell脚本并将输出保存到文件中,同时仍然在屏幕上同时显示结果(STDOUT和STDERR),并在脚本结束后执行另一个命令?我应该使用nohup吗?

1 个答案:

答案 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