Shell脚本使用if来在文件中搜索模式

时间:2018-08-28 14:37:50

标签: linux shell scripting tcsh

这是我的脚本,我想在文件中查找模式。我知道如果找到模式,grep -q '<Pattern>' '<file>' && echo $?的退出状态为0。但是我收到 if:表达式语法错误。

 if ( (grep -q '<Pattern>' '<file>' && echo $?)==0  ) then
 echo "Pattern found"
 else
 echo "Pattern not found"
 endif

1 个答案:

答案 0 :(得分:2)

我想你想要这个:

if ( { grep -q '<Pattern>' '<file>' } ) then
 echo "Pattern found"
else
 echo "Pattern not found"
endif

注意命令周围的花括号以及花括号和命令之间的空格。

请参见man tcsh表达式

  

命令退出状态

     

可以在表达式中执行命令,并返回退出状态   将其括在大括号('{}')中。记住大括号应该是   与命令的单词之间用空格隔开。