如果有条件的bash给出错误

时间:2013-09-10 04:57:20

标签: bash

我有一个小的bash脚本,我想获取文件的格式。

FILENAME=$1

GET_FILE_FORMAT=`file $FILENAME | grep -i data`
if[[ "$GET_FILE_FORMAT" = *data* ]]
        echo "Format Data";
fi

然而,我得到的输出如下

./try.bash test.data
./try.bash: line 4: if[[ test.data : data = *data* ]]: No such file or directory
Format Data
./try.bash: line 6: syntax error near unexpected token `fi'
./try.bash: line 6: `fi'

1 个答案:

答案 0 :(得分:4)

这里有几个问题:

  1. if之后您没有任何空格。

  2. 未指明条件的结尾,即if

  3. 要解决,请说:

    if [[ "$GET_FILE_FORMAT" = *data* ]]; then
    

    为防止在文件名本身包含字符串data时收到错误信息,请说:

    GET_FILE_FORMAT=$(file "${FILENAME}" | awk -F: '{print $NF}')