如何在没有“test”的情况下创建if或while循环并使用“not”运算符?

时间:2012-04-20 11:24:06

标签: bash conditional-statements

如果我这样做:

if grep someexpression somefile >/dev/null; then
   ...
fi

事情很好。

要做“不”,我知道我可以这样做(使用[]这是测试命令):

if [ '!' somecondition ] ; then
   ...
fi

一个简单的解决方法:

grep someexpression somefile >/dev/null
if [ '!' $? ]; then
   ...
fi

但是上面的解决方法不适用于while循环,所以我需要编写一个函数,这很烦人。我怎么做上面没有grep的东西,正确的方法?

1 个答案:

答案 0 :(得分:3)

尝试:

if ! grep someexpression somefile >/dev/null; then
   ...
fi

请注意,!之后的空格是必需的,否则它将(尝试)调用历史记录扩展。