所以,我有一个bash脚本,其中我想要一个条件,这取决于perl脚本返回的内容.我的代码背后的想法如下:
for i in $(ls); do
if $(perl -e "if (\$i =~ /^.*(bleh|blah|bluh)/) {print 'true';}"); then
echo $i;
fi;
done
Run Code Online (Sandbox Code Playgroud)
目前,这总是返回true,当我在if语句周围尝试[[]]时,我遇到了错误.任何人的想法?
Ps我知道我可以用grep做到这一点,但这只是一个例子.我想知道如何让Bash一般使用Perl输出
Pps我知道我可以用两行来做,将perl输出设置为变量,然后测试该变量值,但我宁愿避免使用那个额外的变量.似乎很浪费.
如果使用exit,则可以直接使用if.例如
if perl -e "exit 0 if (successful); exit 1"; then
echo $i;
fi;
Run Code Online (Sandbox Code Playgroud)
0表示成功,非零表示失败,如果不调用exit,则0表示默认值.