为什么此代码可以正确工作,而相同条件的其他版本却不能?
if grep -q string file; then
echo found
else
echo not found
fi
这不起作用:
if [ ! `grep -q string file` ]; then
echo not found
else
echo found
fi
答案1
`grep -q string file`
,在反引号中(或在$(...)
,哪个更好),将被替换为输出的grep
。由于-q
使用了,这将是一个空字符串。
要否定某个测试,只需!
在其前面插入:
if ! grep -q pattern file; then
echo not found
else
echo found
fi
如果你真的想寻找一个细绳(而不是正则表达式),那么您也应该使用-F
with 。grep