shell脚本中如何不让父shell生成子shell

#!/bin/sh  
cd /home/user/Downloads  
pwd  

在shell环境下通过./chdir.sh执行这段脚本是无法进入Downloads目录的; 这是因为shell在执行脚本时,会创建一个子shell,并在子shell中逐个执行脚本中的指令; 而子shell中从父shell中继承了环境变量,但是执行后不会改变父shell的环境变量;如果想要代码中切换目录的操作生效,只需要通过source 命令执行即可:

source ./chdir.sh   

 source 命令是在当前的shell环境下执行脚本 ,不会创建子shell; 
    每次都要输入source是一件烦琐的事情,其实source命令又叫点命令,在需要用到source的情况下,直接换成'.'即可: 
    
    . ./chdir.sh 
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章