比较shell脚本中的文件大小

我试图比较shell脚本中的两个文件的大小,但我得到一个testing:32:8:意外的操作员错误。

I=`wc -c $i | cut -d' ' -f1` J=`wc -c $j | cut -d' ' -f1` if test $I == $J then echo $i $j >> $1.pares fi 

我使用echotesting$ I和$ J的值,值是正确的,但我不能比较它们…

尝试使用方括号( [] )和-eq如下所示:

 I=`wc -c $i | cut -d' ' -f1` J=`wc -c $j | cut -d' ' -f1` if [ $I -eq $J ] then   echo $i $j >> $1.pares fi 

这在bash上工作

 if((`stat -c%s "$file1"`==`stat -c%s "$file2"`));then echo "do something" fi 

尝试

 I=`wc -c "$i"` # always use quoted var J=`wc -c "$j"` [[ "$I" == "$J" ]] && echo "$i" "$j" >> "$1".pares 

总是引用变量,因为你可以有一个包含空格的文件名。

尽管BASH对变量名不区分大小写,但对变量使用不同的(且长于一个字符)名称会更好也更安全。