过去几周我花了很多时间在这里发布。我终于认为我与学习bash的关系更加密切,但是我的代码有一个问题,我不能为我的生活弄清楚为什么它不会运行。我可以在终端中运行每一行,并返回一个结果,但由于某种原因,当我指出它运行时,它什么都不会做。我得到一个语法错误:意外的词(期待“做”)。bash将某些文件名打印为文本
#!/bin/bash
image="/Home/Desktop/epubs/images"
for f in $(ls "$image"*.jpg); do
fsize=$(stat --printf= '%s' "$f");
if [ "$fsize" -eq "40318" ]; then
echo "$(basename $f)" >> results.txt
fi
done
我错过了什么?
你'ls'命令被作为一个荣耀的回声 - 假设它在所有工作,这它可能不会在'“$ image”'和'* .jpg'之间没有'/'。只需在'$ image“/ *。jpg中输入'f'; do'。而且,'--printf ='和''%s''之间会有一个额外的空间,这会破坏你的'stat'命令。 –
@sean解释你的意思请 –
@CuriousGeorge你已经在StackOverflow上提出了5个其他问题,并且从未将其中一个答复标记为答案。 –