shell指令碼執行的幾種方法以及區別
給指令碼加上執行許可權chmod u+x a.sh, 而後就可以直接用全路徑來執行指令碼了,比如當前資料夾下用./a.sh,如果如果指令碼所在目錄在path環境變數之中, 則直接用a.sh即可(這和執行我們自己編寫的程式是乙個道理)
sh/bash ./a.sh 這種情況不需要指令碼具有執行許可權
以上兩種執行方式都是在子shell中執行的,也就是說當前shell需要啟動另外乙個shell,用來執行a.sh內的命令
source ./a.sh
. ./a.sh(注意前面的 . )以上兩種執行方式是在當前shell下執行,並不需要建立子shell
source和 . 命令的作用:用來執行乙個指令碼
前兩種方式和後兩種方式的另外區別:如果你在乙個指令碼裡export $kkk=111 ,如果你用./a.sh執行該指令碼,執行完畢後,你執行
echo $kkk ,發現沒有值,如果你用source來執行 ,然後再echo
,就會發現kkk=111。因為呼叫./a.sh來執行shell是在乙個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是
source不同它就是在本shell中執行的,所以可以看到結果。
執行指令碼時是在乙個子shell環境執行的,指令碼執行完後該子shell自動退出
乙個shell中的系統環境變數只對該shell或者它的子shell有效,該shell結束時變數消失(並不能返回到父shell中)
用export定義的變數會被複製到該shell的子shell中
不用export定義的變數只對該shell有效,對子shell也是無效的
Linux執行SHELL指令碼的幾種方法
1 source 或.命令用法 source filename 或 filename 作用 在當前bash環境下讀取並執行filename中的命令,該filename檔案可以 無執行許可權。如 source bash profile 與 bash profile 兩者等效。source 或點 命令通...
執行python指令碼的幾種方法
linux有下列的幾種方法來執行python指令碼 注 我所用的python環境為 2.6 一.終端命令列下 python name.py 二.python環境中 若指令碼名稱為name.py,其內容為 a head b hehe print a,b 則使用 impport name 針對此種方法我...
bash shell指令碼執行的幾種方法
bash shell指令碼執行的幾種方法 假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在 data shell目錄中並已有執行許可權。方法一 切換到shell指令碼所在的目錄 此時,稱為工作目錄 執行shell指令碼 cd data shell hello.sh 的意思是說在當...