shell脚本执行的方法

例如如下shell脚本cd.sh    它的目的是把当前终端切换到/mnt/hgfs/OSP/client目录下。


#!/bin/sh

cd /mnt/hgfs/OSP/client

pwd


执行方法一:   ./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。

你可能感兴趣的:(shell脚本执行的方法)