LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 924|回复: 13

source这个命令什么作用?

[复制链接]
发表于 2003-5-12 17:38:14 | 显示全部楼层 |阅读模式
发表于 2003-5-12 17:42:39 | 显示全部楼层
使环境变量生效
发表于 2003-5-12 18:51:04 | 显示全部楼层
应该是把一个文本文件的内容当成脚本来执行。
发表于 2003-5-12 20:07:06 | 显示全部楼层
对,就是执行一个没有x属性的脚本
发表于 2003-5-13 09:55:58 | 显示全部楼层

看样子你们OS课程白学了。

source 是在当前shell进程中解释执行shell script。
而通常的执行shell script的方法是产生一个子进程,然后在子进程中自行shell script所以宏观表现是当前Shell的变量在执行shell script后一个变化,一个不变化。
发表于 2003-6-3 10:17:12 | 显示全部楼层
呵呵,没学过os。。。
那你倒说说 . ./a.sh 和source ./a.sh这两个有什么不同
发表于 2003-6-3 10:26:16 | 显示全部楼层
我觉得source跟C中的include类似,是把一个文件插入到当前行之后,并且从当前行开始执行.
发表于 2003-6-3 13:20:51 | 显示全部楼层
source ./a.sh,使得脚本中的命令被读取并运行,就好像键入它们一样。

而./a.sh,则运行了shell的一个副本作为子进程(子shell),然后子shell从脚本中取得命令来执行,运行结束后,控制权返回给父shell。
发表于 2003-6-3 17:00:47 | 显示全部楼层
同意life的说法
另外. xx.sh和source xx.sh等效
发表于 2003-6-4 14:28:53 | 显示全部楼层
不等效的,牵涉到自定义的变量,就不一样了。
比如你在.bash_profile里export了一个变量,用source xx.sh来执行,这个变量就是已被赋值的;而xx.sh来执行,这个变量就是空的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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