gpt4 book ai didi

linux - Linux Bash 脚本中 "[: too many arguments"语句中的 "if"错误

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:45 26 4
gpt4 key购买 nike

为什么我会收到此错误:

line 9: [: too many arguments

执行此 bash 脚本时:

IN_FOLDER=period_to_import

cd $IN_FOLDER


for filename in *; do
WC=$(wc -w $filename)

if [ $WC -gt 33 ]
then
rm $filename
fi
done

最佳答案

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

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

关于linux - Linux Bash 脚本中 "[: too many arguments"语句中的 "if"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50223477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com