如果找到字符串,则使perl退出1

时间:2017-08-18 17:40:41

标签: 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_ascii_characters.txt
➜ echo $!
0

我该怎么做?

1 个答案:

答案 0 :(得分:4)

您应该使用$?代替$!

  

!:扩展为最近执行的后台(异步)命令的进程ID。

     

?:扩展到最近执行的前台管道的退出状态。