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”。