默认情况下, 当Shell脚本执行结束后, 还会回到原来的目录, 在Shell 脚本中进行目录切换的cd操作,在脚本结束后并不能生效.因为当前shell 执行脚本时,会新打开一个子进程, 而子进程中的目录切换,环境变量修改并不能影响当前shell. 可通过source命令,强制使用当前shell 来执行脚本, 这样在脚本中做的修改都会影响当前shell,除了切换目录, 对环境变量的修改也会影响, 所以用时需谨慎.
1. 测试脚本 test.sh
cd /usr/local/bin
2. 普通方式执行命令
# 当前位置
$ pwd
/home/zongf
# 使用source 命令执行脚本
$ ./test.sh
# 执行脚本后位置
$ pwd
/home/zongf
3. source 执行脚本
- 命令: source $script
# 当前位置
$ pwd
/home/zongf
# 使用source 命令执行脚本
$ source ./test.sh
# 执行脚本后位置
$ pwd
/usr/local/bin