Bash 如果找到字符串,则使用1退出perl
我需要一个bash命令(perl?),如果在文本文件中发现非ASCII字符,它将输出非零退出代码 以下是我目前掌握的情况:Bash 如果找到字符串,则使用1退出perl,bash,perl,Bash,Perl,我需要一个bash命令(perl?),如果在文本文件中发现非ASCII字符,它将输出非零退出代码 以下是我目前掌握的情况: perl -nle 'print "$." if m/[\x80-\xFF]/' file_that_has_non_ascii_characters.txt 这将打印出在其上找到非ASCII字符的每一行。我尝试了一个带有exit 1的变体,但它似乎不起作用: ➜ perl -nle 'exit 1 if m/[\x80-\xFF]/' file_that_has_non
perl -nle 'print "$." if m/[\x80-\xFF]/' file_that_has_non_ascii_characters.txt
这将打印出在其上找到非ASCII字符的每一行。我尝试了一个带有exit 1
的变体,但它似乎不起作用:
➜ perl -nle 'exit 1 if m/[\x80-\xFF]/' file_that_has_non_ascii_characters.txt
➜ echo $!
0
怎么做?您应该使用
$?
而不是$代码>
代码>:扩展到最近执行的后台(异步)命令的进程ID
?
:扩展到最近执行的前台管道的退出状态
退出代码位于bash
中的$?
中。您为什么不查看$?
?请参阅“此问题是由一个无法再复制的问题或一个简单的印刷错误引起的。虽然此处可能有类似的问题,但此问题的解决方式不太可能帮助未来的读者。”