LinuxSir.cn,穿越时空的Linuxsir!

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

??? 一个简单shell脚本的困惑 ???[已解决]

[复制链接]
发表于 2005-1-24 15:56:54 | 显示全部楼层 |阅读模式
写一个简单的script文件,名字叫exe,
内容如下:
cd /home

方法一:
chmod +x exe
键入exe,没有出现预期的结果,即进入 /home 目录。

方法二:
source exe
即可进入 /home 目录

将内容改为:
echo "That's ok!"

以上述两种方式执行,均可生效。


这是怎么回事???
:ask
发表于 2005-1-24 16:04:46 | 显示全部楼层
在本论坛中已有相关的解释了,主要是source命令是用当前的shell来执行,否则shell会invoke另外一个子进程来执行,执行完成后就返回了,而echo是个输出命令,当然是一样的了。
回复 支持 反对

使用道具 举报

发表于 2005-1-24 16:22:03 | 显示全部楼层
没看过shell 十三问吧,很经典。
http://bbs.chinaunix.net/forum/v ... 92bfacc2baa06c39652
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-24 16:44:43 | 显示全部楼层
"否则shell会invoke另外一个子进程来执行,执行完成后就返回了"
就是说shell启动另外一个子进程,执行命令 cd /home,而cd /home的结果是在系统提示符里显示的,因此
子进程执行完毕后返回到原来的shell中,没留下任何痕迹?
回复 支持 反对

使用道具 举报

发表于 2005-1-24 16:57:39 | 显示全部楼层
cd /home的结果是你所看不见的,因为没有任何输出啊,如果你再加一句 ls -l 就知道系统执行时确实进入了/home目录,并进行了列文件的操作,完成后又退回到原来目录了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-1-24 17:13:47 | 显示全部楼层
明白了,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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