如果语句语法错误(shell)

时间:2013-12-17 04:28:31

标签: shell if-statement

if [[ ! -z grep echo "${prof}" | cut -d. -f1 dm_smear.dat ]]

这给了我以下错误。我试图在文件${prof}中找到一个字符串dm_smear.dat,如果该文件中存在,我将执行某些操作

: syntax error in conditional expression   
: syntax error near `1`'   
: `         if [[ ! -z grep `echo "${prof}" | cut -d . -f 1` dm_smear.dat ]]'

2 个答案:

答案 0 :(得分:1)

  

我正在尝试在文件dm_smear.dat中找到字符串$ {prof}以及if   存在于文件中我会做某些操作

您只需使用-q的{​​{1}}选项即可。说:

grep

您可以通过正确使用进程替换来修复原始代码:

if grep -q "${prof}" dm_smear.dat; then
   echo "Found the string"
   # Do something here
fi

答案 1 :(得分:0)

您可以尝试以下代码

教授= “KEY1”

如果! [-z cut -d. -f1 dm_smear.dat | grep ${prof}];然后

     echo "FOUND"

否则

     echo "NOT FOUND"

网络连接

在上面的代码中,我们在第一列

的dm_smear.dat文件中搜索KEY1

如果文件在任何行的第一列中包含KEY1,则输出将为FOUND,否则将打印NOT FOUND

其中dm_smear.dat包含

KEY1.VALUE1

KEY2.VALUE2

KEY3.VALUE2