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 
    

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