linux下shell指令碼執行方式與區別

2021-10-03 12:51:54 字數 635 閱讀 1142

1、source

作用:在當前bash環境下讀取並執行filename中的命令。該filename檔案可以無"執行許可權"

2、sh或bash

作用:在當前bash環境下新建乙個子shell來執行指令碼中的命令,該filename可以無執行許可權

3、./

作用:開啟乙個子shell執行shell指令碼中的命令

注意:每個shell指令碼有效的執行在父shell的乙個子程序裡,這個父shell是指在乙個控制終端或在乙個xterm視窗給你命令指示符的程序,這些子shell使指令碼並行的有效率的同時執行指令碼內的多個子任務,子shell指令碼內設定的變數在父shell中無效。指令碼中的export僅僅作用於該指令碼及其子指令碼位置變數引數,在向指令碼傳遞引數時,可以使用此位置變數來獲取引數。

source sh ./ 區別

(1)當指令碼有可執行許可權時,用sh和./沒有區別,

./是因為當前目錄沒有在path中,.表示當前目錄

(2)sh filename 從新建立子shell,在子shell中執行指令碼裡面的內容,該子shell繼承父shell的環境變數,但是子shell新建的變數不會被帶到父shell,除非使用export

(3)source filename

在當前shell依次讀取指令碼裡的內容

Linux下執行Shell指令碼

linux下可以用兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等。一般來說,第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...

Linux 下執行Shell 指令碼的方式

shell 指令碼的執行方式通常有如下三種 1 bash script name 或者 sh script name 2 path script name或者.script name 3 sourcescript name或者.script name。下面,分別介紹下這三種方式的特點 1 bash ...

Ubuntu下執行Shell指令碼

將乙個指令碼儲存為帶有副檔名的檔案,如test.sh,在終端上輸入 chmod x test.sh 然後輸入 test.sh 終端顯示 test.sh 找不到命令 後來看了鳥個私房菜,發現這樣輸入,系統只會在 path上列出的路徑查詢,而不會查詢當前的目錄有沒有這樣的命名,以找到的第乙個為準 但是,...