我在给定目录中的文件夹循环if
中设置了一个条件for
,检查每个文件夹中是否存在特定文件,如果不存在则跳过该文件夹。该if
条件给出了参数过多的错误:
line 2: [: too many arguments
这是我的语法:
for folders in path; do
if [ ! -e /sub/folder/file* ]; then
continue
fi
#do-stuff-to-file
done
类似的循环检查子目录工作! -d
正常......
答案1
通配符就是问题所在。假设你有文件A和文件B,它将扩展为:
if [ ! -e /sub/folder/fileA /sub/folder/fileB ]; then
从语法上来说,这是无效的。