LinuxSir.cn,穿越时空的Linuxsir!

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

source命令的一个妙用

[复制链接]
发表于 2003-1-4 08:37:02 | 显示全部楼层
似乎不用 source 也可以,直接把文件名 +x 后执行不就行了?
 楼主| 发表于 2003-1-4 09:37:24 | 显示全部楼层
最初由 scopio 发布
哦,明白了,我还以为 用|| 和&&时,两条命令得在同一行呢:)

用||和&&时。命令是按顺序执行的,所以命令写在一行上也没有关系。如:
make mrproper && make menuconfig && make dep && make clean && 。。。
和把一个命令单独写在一行上效果是一样的。
 楼主| 发表于 2003-1-4 09:38:28 | 显示全部楼层
最初由 lins 发布
似乎不用 source 也可以,直接把文件名 +x 后执行不就行了?

直接加+x是执行不了的,不信你试一下。
发表于 2003-1-4 09:41:18 | 显示全部楼层
不用source也一样吧,直接
./scriptname也行吧,我就是没有搞懂source具体是什么用的
发表于 2003-1-4 14:07:23 | 显示全部楼层
1.#chmod  +x abc //设置abc为可执行
2.#source abc    //运行abc
发表于 2003-1-5 21:57:52 | 显示全部楼层
呵呵,写成一个bash脚本就完事乐嘛
发表于 2003-1-6 21:09:36 | 显示全部楼层
对呀,写个脚本就行了。。
source是什么。
 楼主| 发表于 2003-1-7 20:28:09 | 显示全部楼层
最初由 ghostwalker 发布
对呀,写个脚本就行了。。
source是什么。

source是将一个文本文件的内容当成shell脚本来执行。我举这个例子,目的就是让大家体会这个命令的用法。如果改成一个脚本,效果也是一样的。
发表于 2004-5-27 01:12:07 | 显示全部楼层
那为什么还要用source呢,它有什么特别的用途吗?
发表于 2004-5-27 01:21:21 | 显示全部楼层
最初由 alyroot 发表
那为什么还要用source呢,它有什么特别的用途吗?

直接执行一个脚本会创建一个子shell进程,但source一个脚本则会在当前进程执行脚本。
举个例子吧,当需要引进一些变量使之作用于本脚本进程时,可以source一个变量定义文件,但不能直接执行这个定义文件,否则这样带来在新创建的子进程内定义的变量对父进程不可视,所以直接执行是无效的。
通俗地说,Shell的source相当于C的#include机制,它的主要用途也如此。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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