LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: lofeng410

请教几个小问题

[复制链接]
发表于 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文件,这个文件中保存了刚才所编译的文件。
回复 支持 反对

使用道具 举报

发表于 2008-11-5 10:14:44 | 显示全部楼层
如果你把最后一句去掉,应该可以看到当前目录下有一个文件,名为done。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 10:50:31 | 显示全部楼层
Post by ti8er;1904176
我刚才专门又看了我专门收藏的418页的编程手册,已经看明白这个脚本了,下面我慢慢解释:)


:cool:多谢老大!
没想到你去翻看418页的编程手册以解我惑,感激涕零中~~
回复 支持 反对

使用道具 举报

发表于 2008-11-5 10:51:47 | 显示全部楼层
Post by d00m3d;1897649
LFS 跟发行版不同,没有强劲的包管理系统去管理包及自动解决包的依赖,现有的包管理系统功能都比较有限

paco 我一直在用,它也有 GUI (可选择不装)的,但依赖甚多。对 LFSer 来说,paco 算是可用的,但别期望它能跟 apt、yum、portage 较劲了


呵呵,包管理系统原来如此重要啊
回复 支持 反对

使用道具 举报

发表于 2008-11-5 10:52:10 | 显示全部楼层
那个文档是Shell编程最好的文档,我之前翻过几次了,太全面了,很多东西如果不经常用的话根本是记不住也掌握不了的。

在Ubuntu的Wiki上有下载。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 10:52:34 | 显示全部楼层
Post by ti8er;1904189
如果你把最后一句去掉,应该可以看到当前目录下有一个文件,名为done。

这个done 最早出现在
grep ^$packagedir$ done && continue;
这个时候done还没有创建,就直接当作搜索的对象,有点不好理解
而且done在shell里面是有特殊用途的,就更让人困惑了
回复 支持 反对

使用道具 举报

发表于 2008-11-5 10:52:46 | 显示全部楼层
Post by lofeng410;1904209
:cool:多谢老大!
没想到你去翻看418页的编程手册以解我惑,感激涕零中~~

这个手册在哪里?
我也想看!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-5 10:54:43 | 显示全部楼层
Post by ti8er;1904211
那个文档是Shell编程最好的文档,我之前翻过几次了,太全面了,很多东西如果不经常用的话根本是记不住也掌握不了的。

在Ubuntu的Wiki上有下载。


我也去下载下来,因为没有用过ubuntu,所以那些地方以前都没有去过,呵呵~~
回复 支持 反对

使用道具 举报

发表于 2008-11-5 10:56:54 | 显示全部楼层
这个论坛我传不上,Ubuntu的BLOG又老出错。只能麻烦你们自己去找了呵呵。

Advanced Bash-Scripting Guide
高级Shell编程指南,杨春敏,黄毅译

我记得是在Ubuntu的论坛上下载的。

这是公认的最好的Shell编程手册,仅仅第3章就列出了所有的特殊符号,看得我都头大……
回复 支持 反对

使用道具 举报

发表于 2008-11-5 10:57:16 | 显示全部楼层
Post by lofeng410;1903815
现在./configure --prefix=/usr又报错cairo requires at least one font backend
继续找font安装

这些依赖忒麻烦了,
极容易出错。。。
我上次在ubuntu上搞这些,把系统搞崩溃了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表