显示正在执行的 bash 命令的输出

显示正在执行的 bash 命令的输出

我的 bash 脚本中有一行这样的内容:

echo "`some_command`"

现在,some_command执行大约 1-2 分钟,并在此间隔内不断打印警报/消息。

问题是当我执行我的 bash 脚本时,脚本 1-2 分钟内没有输出,然后在执行完成后直接显示输出some_command

如何some_command在执行时使 bash 脚本输出? 有办法吗?

答案1

代替:

echo "`some_command`"

和:

some_command

反引号在这里没用,所以可以省去。只有在需要以某种方式总结输出时,它们才会有用它已经完成了。

答案2

追踪

您可以设置xtrace选项(通常用于调试 shell 脚本),然后再运行命令(无需使用命令替换)。此外,不要忘记在运行命令后取消设置该选项。

set -x
some_command
set +x

例子:

$ set -x; sleep 2 && echo fin; set +x
+ sleep 2
+ echo fin
fin
+ set +x

回声

如果你发现 xtrace 输出太混乱,你可以echo预先简单地输入命令的名称:

echo some_command
some_command

相关内容