错误命令测试 shell linux

错误命令测试 shell linux

您好,我的这段代码有一个错误。我想检查文件是否可读可写,并检查该文件是否包含字符串“/usr/bin/python2”,但 shell 打印此错误:

grep /usr/bin/python2

我该如何解决这个问题?

if test -f $i -a test -w $i -a `grep /usr/bin/python2 < $i`
then
   echo $i
fi

答案1

if test -r "$i" -a -w "$i" && grep -q "/usr/bin/python2" "$i"
then
   echo "$i"
fi

您还可以避免整个 if 语句并通过 grep 隐式检查可读性:

test -w "$i" && grep -l "/usr/bin/python2" "$i" 2>/dev/null

相关内容