我必须查看文件是否具有工作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
为什么不返回yaaaay
?
答案 0 :(得分:2)
#!/bin/bash
cd ~/Desktop/htmlFiles/
echo "Starting"
if grep -qinE "england" maps.html ; then
echo "yaaaay"
fi
给我所需的输出。这是一个好习惯吗?
答案 1 :(得分:1)
反引号替换将返回命令的输出。在这种情况下,您输出的行号包含grep
的输出,后跟匹配的行。因此,第22行似乎有一些东西,但shell尝试执行命令22:
,然后失败。
您作为后续答案发布的变体将起作用,因为grep在成功匹配时返回0,但如果匹配失败则返回1。