我想创建一个 shellscript,它从 .diz 文件中读取文件,其中存储了有关各种源文件的信息,这是编译某个软件(在本例中为 imagemagick)所需的。我在这个例子中使用 Mac OSX Leopard 10.5。
基本上,我希望有一种简单的方法来维护这些 .diz 文件,这些文件包含最新源包的信息。我只需要使用 url、版本信息和文件校验和更新这些 .diz 文件。
示例行:
libpng:1.2.42:libpng-1.2.42.tar.bz2?use_mirror=biznetnetworks:http://downloads.sourceforge.net/project/libpng/00-libpng-stable/1.2.42/libpng-1.2.42.tar.bz2?use_mirror=biznetnetworks:9a5cbe9798927fdf528f3186a8840ebe
脚本部分:
while IFS=: read app version file url md5
do
echo "Downloading $app Version: $version"
curl -L -v -O $url 2>> logfile.txt
$calculated_md5=`/sbin/md5 $file | /usr/bin/cut -f 2 -d "="`
echo $calculated_md5
done < "files.diz"
实际上,我对此有不止一个问题。
- 如何计算和比较校验和最好?我想将 md5 校验和存储在 .diz 文件中,并将其与字符串比较与“剪切”字符串进行比较
- 有没有办法告诉 curl 另一个文件名保存到?(在我的情况下,文件名变得丑陋 libpng-1.2.42.tar.bz2?use_mirror=biznetnetworks)
- 我似乎对应该引导管道 md5 的输出并切入变量 $calculated_md5 的反引号有问题。语法错了吗?
谢谢!