我有一个小的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'
答案 0 :(得分:4)
这里有几个问题:
if
之后您没有任何空格。
未指明条件的结尾,即if
。
要解决,请说:
if [[ "$GET_FILE_FORMAT" = *data* ]]; then
为防止在文件名本身包含字符串data
时收到错误信息,请说:
GET_FILE_FORMAT=$(file "${FILENAME}" | awk -F: '{print $NF}')