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環境下讀取並執行腳本中的命令,相當於順序執行腳本里面的命令