免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 757 | 回复: 0
打印 上一主题 下一主题

source [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-27 22:42 |只看该作者 |倒序浏览
    source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是一个点符号,(从Bourne
Shell而来)是source的另一名称。同样的,当前脚本中设置的变量也将作为脚本的环境,source(或点)命令通常用于重新执行刚修改的初始化
文件,如 .bash_profile 和 .profile 等等。例如,如果在登录后对 .bash_profile 中的 EDITER 和
TERM 变量做了修改,则可以用source命令重新执行 .bash_profile 中的命令而不用注销并重新登录。    是把一个文本文件的内容当成脚本来执行。就是执行一个没有x属性的脚本.
source 是在当前shell进程中解释执行shell script。而通常的执行shell script的方法是产生一个子进程,然后在子进程中自行shell script所以宏观表现是当前Shell的变量在执行shell script后一个变化,一个不变化。source跟C中的include类似,是把一个文件插入到当前行之后,并且从当前行开始执行.
    比如,source ./a.sh,使得脚本中的命令被读取并运行,就好像键入它们一样。
而./a.sh,则运行了shell的一个副本作为子进程(子shell),然后子shell从脚本中取得命令来执行,运行结束后,控制权返回给父shell。
    又比如你在.bash_profile里export了一个变量,用source xx.sh来执行,这个变量就是已被赋值的;而xx.sh来执行,这个变量就是空的。
    例子:
    在对编译系统核心时常常需要输入一长串的命令,如:
make mrproper
make menuconfig
make dep
make clean
make bzImage
…………

果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作用就是把
一个文件的内容当成shell来执行,先在linux的源代码目录下(如/usr/src/linux-2.4.20)建立一个文件,如
make_command,在其中输入一下内容:
make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImage /boot/vmlinuz_new &&
cp System.map /boot &&
vi /etc/lilo.conf &&
lilo -v
文件建立好之后,每次编译核心的时候,只需要在/usr/src/linux-2.4.20下输入:
source make_command
即可,如果你用的不是lilo来引导系统,可以把最后两行去掉,配置自己的引导程序来引导内核。
顺便补充一点,&&命令表示顺序执行由它连接的命令,但是只有它之前的命令成功执行完成了之后才可以继续执行它后面的命令。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/38576/showart_311191.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP