Linux中shell和子shell一點點理解


Linux執行腳本有兩種方式,主要區別在於是否建立子shell
 
1、像sh,bash,./命令是用來執行shell腳本的,在bash/sh命令下,腳本文件可以無"執行權限",即沒有rwx中的x權限。而對於./命令,腳本文件必須要有執行權限。
      創建子shell,在當前bash環境下再新建一個子shell執行腳本中的命令子shell繼承父shell的變量,但子shell不能使用父shell的變量,除非使用export聲明為環境變量
      子Shell從父Shell繼承得來的屬性如下:
               當前工作目錄
               環境變量
               標准輸入、標准輸出和標准錯誤輸出
               所有已打開的文件標識符
       子Shell不能從父Shell繼承的屬性:
               除環境變量和.bashrc文件中定義變量之外的Shell變量
 
2、source和.執行文件不會生成子shell
     不創建子shell,在當前shell環境下讀取並執行腳本中的命令,相當於順序執行腳本里面的命令


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM