|
发表于 2008-11-5 10:11:46
|
显示全部楼层
top=$PWD #定义top变量,值为当前目录
cat ../Proto-20081023.wget | while read package; do #把上级目录的.wget文件内容输出到while循环,循环的开始定义了一个变量为package,值为.wget内容中单行的值。
packagedir=$(sed -e "s/\.tar\.bz2//" <<< $package) #用sed命令去掉变量package的.tar.bz2这个字符串,并赋给变量packagedir。其中,<<<管道表示的意思是:这是字符串,它与<<不同,后者表示的是:这是文件。
cd $top || break; #进入变量top表示的目录,如果不成功,那么结束循环。
grep ^$packagedir$ done && continue; #在done文件中查找起始字符串为packeagedir变量,并且以这个变量结束的行;如果成功了,那么进入下一个循环。这么做的作用就是:避免重复地编译同一个文件(因为文件done中记录了所编译的文件,下面可以看到)。
tar xvf $package && #解压缩
cd $packagedir && #进入目录
./configure $XORG_CONFIG && #配置
make install && #编译并安装
cd .. && #返回上级目录
rm -rfv $packagedir && #删除刚才的工作目录
echo "$packagedir" >> done || break #把变量packagedir(它保存的是刚才的工作目录信息)的值追加到done 文件结尾,如果不成功,那么结束循环。
done #while循环边界,注意与上面的done文件不同。
rm done #删除done文件,这个文件中保存了刚才所编译的文件。 |
|