我正在尝试比较shell脚本中两个文件的大小,但我得到一个测试: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
我使用echo测试$ I和$ J中的值,值是正确的但是我无法比较它们......
答案 0 :(得分:4)
这适用于bash
if((`stat -c%s "$file1"`==`stat -c%s "$file2"`));then
echo "do something"
fi
答案 1 :(得分:2)
尝试使用方括号([]
)和-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
答案 2 :(得分:0)
尝试
I=`wc -c "$i"` # always use quoted var
J=`wc -c "$j"`
[[ "$I" == "$J" ]] && echo "$i" "$j" >> "$1".pares
始终引用变量,因为您可以拥有包含空格的文件名。
尽管BASH对变量名称不区分大小写,但对变量使用不同的(并且长于一个char)名称会更好更安全。
答案 3 :(得分:0)
这样的事情可以起作用......
#/bin/bash <br>
I=`wc -c < echo $i`
J=`wc -c < echo $j`
if [ $I -eq $J ]; then
echo $i $j >> $1.pares
fi
拥抱!