首先,我們來看一一個程式test.sh
#!/bin/sh #this is a test. cd /tmp echo "hello,this is a test"
執行程式的方法:
1、讓檔案具有可執行權限,直接運行檔案。
chmod指令用來修改檔案的權限。
x是使檔案擁有可執行的權限。就如上面我們運行程式一樣。
(推薦教學:linux教學)
2、直接呼叫指令解釋器執行程式。
由於我們的解釋器是/bin/sh,所以,用sh指令解釋器來執行程式。
3、使用source執行檔。
程式執行差異說明:
在我們執行shell程式的三種方法中,前兩種方法的執行過程如下:
(1)父進程接收到指令,然後發現不是內建指令,於是建立了一個跟自己一樣的shell進程,來執行這個外部指令
(2)這個shell子進程用/bin /sh取代自己,sh進程設定自己的運行環境變量,其中包括了$PWD變量。
(3)sh程序依序執行內建指令cd和echo。在此過程中,sh進程(子進程)的環境變數被cd指令改變。
(4)子進程執行完畢,就消亡了,一直在等待的父進程醒來,繼續接受命令。
所以我們明白了前兩種方法執行結果跟我們預期不一樣的原因,父行程的目前目錄(環境變數)無法被子程序改變。
但是,使用source執行是shell腳本時不會建立子進程,而是在父進程中直接執行。
相關影片教學推薦:linux影片教學
#以上是linux中如何運行shell程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!