我有一个努力让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)
…