例如以下shell脚本cd.sh 它的目的是把当前终端切换到/mnt/hgfs/OSP/client目录下。shell
#!/bin/shspa
cd /mnt/hgfs/OSP/client变量
pwdcli
执行方法一: ./cd.sh 终端
结果:目录没有切换,可是会在终端上打印一行:/mnt/hgfs/OSP/client方法
解释:这样执行的话终端会产生一个子shell,子shell去执行个人脚本,在子shell中已经切换了目录了,可是子shell一旦执行完,立刻退出,子shell中的变量和操做所有都收回。回到终端根本就看不到这个过程的变化。总结
执行方法二:source cd.sh脚本
结果:目录被切换到/mnt/hgfs/OSP/client,且在终端上打印一行:/mnt/hgfs/OSP/client生成
解释:这时候就是直接在当前终端的shell执行脚本了,没有生成子shell,执行的结果就是输出命令,而且切换了目录
总结:shell 脚本有两种执行的方法,一种是新产生一个shell,而后执行相应的shell脚本;一种是在当前shell下执行,再也不启用其余shell。