难以获得一个非常基本的bash脚本退出



我有一个努力让exit 0工作的同事。

jshint ./ | grep "[0-9] errors" | { read x; if [ ${#x} -gt 0 ]; then exit 0; fi; }

如果我回声"测试"而不是出口0,则可以使用(我看到回声),但是如果我尝试退出0,它不会正确退出。

有什么想法为什么?

它不能正确退出。有什么想法?

您的声明是管道。管道中的每个命令在子壳中运行。这意味着exit 0仅退出该子壳。

您可以像这样重新列出您的行:

x=$(jshint ./ | grep "[0-9] errors" | { read x; echo "$x"; })
[ ${#x} -gt 0 ] && exit 0

避免在管道子壳中尝试exit

也考虑这样做:

x=$(jshint ./ | grep "[0-9] errors" | head -1)
…

相关内容

  • 没有找到相关文章

最新更新