我有以下命令,它给出了正确的结果:
grep --include='*.java' -Ri 'System.loadLibrary' *
但是,如果我把它放在if条件中,它总是返回相同的0结果,无论字符串是否存在:
if [ "grep --include='*.java' -Ri 'System.loadLibrary' *" = 0 ] then ...
我做错了什么?
答案 0 :(得分:4)
使用grep -q
选项:
if grep -q --include='*.java' -Ri 'System.loadLibrary' .; then
echo "found a matching file"
fi
答案 1 :(得分:1)
您可以使用-q
作为安静输出,并直接说:
if grep -q ....; then
# things
如果只有一个动作要执行,甚至是短路操作员:
grep -q ... && echo "yes"
$ echo "23" > a
$ grep -q 23 a && echo "yes" || echo "no"
yes
$ grep -q 45 a && echo "yes" || echo "no"
no