Linux Bash脚本中的“if”语句中的“[:参数太多”错误

时间:2018-05-07 22:45:16

标签: linux bash

为什么我收到此错误:

  

第9行:[:参数太多

执行此bash脚本时:

{{1}}

1 个答案:

答案 0 :(得分:0)

wc -w filename返回的不仅仅是单词数量。你可以这样解决:

if [ "${WC% *}" -gt 33 ]
then
        rm $filename
fi

${WC% *}修剪最后一个空格右边的所有内容。

虽然在单括号中使用未加引号的变量通常是个坏主意。

您可以考虑使用awk:

IN_FOLDER=period_to_import

cd "$IN_FOLDER"

for filename in *; do
    if awk -v n=0 '{n++} END{if (n > 33) exit 0; else exit 1}' "$filename"
    then
        rm "$filename"
    fi
done

请记住,使用*进行通配可能无法在空目录中运行。