我的 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