我只是在SVN_BRANCH
中找不到字符/etc/profile
时尝试执行代码块。我当前的代码如下所示:
a = cat /etc/profile
b = `$a | grep 'SVN_BRANCH'`
not_if "$b"
{
....
...
...
}
这失败了。应该怎么做?
答案 0 :(得分:1)
grep
可以将文件作为参数,您不需要cat
该文件,然后使用管道将内容传递给grep
,这是完全没必要的。
这是if else
阻止grep
的示例:
if grep -q "pattern" filepath;then
echo "do something"
else
echo "do something else"
fi
注意:
-q
选项适用于相当的操作。它将隐藏grep
命令的输出(将打印错误)。
如果您不希望它也不打印任何错误,请使用:
if grep -sq "pattern" filepath;then
或者这个:
if grep "pattern" filepath >/dev/null 2>&1;then
>/dev/null
是将输出重定向到/dev/null
答案 1 :(得分:0)
您可以使用grep命令的退出代码来确定是否像这样执行代码块
cat /etc/profile | grep SVN_BRANCH 2>&1 >/dev/null || {
....
....
}