Shell 在if语句中使用grep

Shell 在if语句中使用grep,shell,if-statement,grep,Shell,If Statement,Grep,我必须查看一个文件是否有工作England。我用过grep 这就是我目前所拥有的 #!/bin/bash cd ~/Desktop/htmlFiles/ echo "Starting" if `grep -inE "england" maps.html` ; then echo "yaaaay" fi 但结果是: Starting ./trial.sh: line 4: 22:: command not found 为什么它不返回yaaay #!/bin/bash cd ~/Deskt

我必须查看一个文件是否有工作
England
。我用过grep 这就是我目前所拥有的

#!/bin/bash
cd ~/Desktop/htmlFiles/
echo "Starting"
if `grep -inE "england" maps.html` ; then 
  echo "yaaaay"
fi
但结果是:

Starting
./trial.sh: line 4: 22:: command not found
为什么它不返回
yaaay

#!/bin/bash
cd ~/Desktop/htmlFiles/
echo "Starting"
if  grep -qinE "england" maps.html  ; then 
    echo "yaaaay"
fi

给了我所需的输出。这是个好习惯吗

反勾选替换将返回命令的输出。在这种情况下,您将使用
grep
的输出输出行号,然后是匹配行。因此,第22行似乎有一些内容,但是shell尝试执行命令
22:
,然后失败


作为后续答案发布的变量将起作用,因为grep在成功匹配时返回0,但如果匹配失败,则返回1。

它将正确查找匹配项,是的。如果为其提供文件中不存在的字符串,则不应回显“yaaay”。