我正在运行OS X.
所以我在使用脚本来比较本地HD和服务器上的文件大小时遇到了问题。 为此,我使用cURL获取http标头,并将其修剪为KB大小。 然后我使用“stat”来获取本地文件的大小。
这是我的代码:
clear
cd "$(dirname "$0")"
Local=$(stat -f "%z" ./Google.png)
Remote=$(curl -sI http://www.google.com/intl/en_com/images/srpr/logo3w.png | grep Content-Length | awk '{print $2}')
declare -i Local
declare -i Remote
echo $Local
echo $Remote
if [ $Local != $Remote ]; then
echo "Different sizes."
else
echo "Same size."
fi
无论尺寸是否相等,我都会得到:
7007
7007
Different sizes.
我真的非常绝望,有人可以帮忙吗?
答案 0 :(得分:3)
使用[ $n -eq $k ]
比较数字。
答案 1 :(得分:0)
卷曲输出的行以回车符+换行符(\ r \ n)终止,而不仅仅是换行符(\ n);回车被包含在Remote的值中,并引起混淆。您可以通过管道tr -d "\r"
删除它,但是让awk执行此操作可能更简单(以及搜索,就此而言):
Remote=$(curl -sI http://www.google.com/intl/en_com/images/srpr/logo3w.png | awk '/Content-Length/ {sub("\r",""); print $2}')
顺便说一句,我不认为declare -i
命令正在做任何有用的事情(因为已经设置了本地和远程)。