如果该语句为真,我的代码中存在语法错误,无法移动文件。该代码将永远持续下去。还尝试添加引号但无法添加。我知道我会犯一些愚蠢的错误。
for file in *.sort;
do if [`wc -l` $i -eq 57817];
then mv "$i" "../$i";
fi; done
有什么建议么?
答案1
[
和 条件之间需要有一个空格$i
未设置- 您的命令替换不包括整个命令(
wc -l file
是整个命令,您只是环绕wc -l
) wc -l file
将输出会导致错误的行数和文件名。wc -l <file
可以用来避免这种情况
for file in *.sort; do
if [ "$(wc -l <"$file")" -eq 57817 ]; then
mv "$file" "../$file"
fi
done