set命令詳解 linux
- IT科技
- 關注:9.4K次
1、set命令功能:
用來設定shell,set指令能設定所使用shell的執行方式,可依照不同的需求來做設定。
2、語法:
set [+-abCdefhHklmnpPtuvx]語法為set [-abefhkmnptuvxBCEHPT] [-o option-name] [argument …] 或者 set [+abefhkmnptuvxBCEHPT] [+o option-name] [argument …]。
第一組與第二組都是set的選項,+號表示關閉選項,-號表示開啟選項,最後一組argument是位置引數。
3、補充說明:
set指令能設定所使用shell的執行方式,可依照不同的需求來做設定。
4、引數:
-a 標示已修改的變數,以供輸出至環境變數。
-b 使被中止的後臺程式立刻回報執行狀態。
-C 轉向所產生的檔案無法覆蓋已存在的檔案。
-d Shell預設會用雜湊表記憶使用過的指令,以加速指令的執行。使用-d引數可取消。
-e 若指令傳回值不等於0,則立即退出shell。
-f 取消使用萬用字元。
-h 自動記錄函式的所在位置。
-H Shell 可利用"!"加<指令編號>的方式來執行history中記錄的指令。
-k 指令所給的引數都會被視為此指令的環境變數。
-l 記錄for迴圈的變數名稱。
-m 使用監視模式。
-n 只讀取指令,而不實際執行。
-p 啟動優先順序模式。
-P 啟動-P引數後,執行指令時,會以實際的檔案或目錄來取代符號連線。
-t 執行完隨後的指令,即退出shell。
-u 當執行時使用到未定義過的變數,則顯示錯誤資訊。
-v 顯示shell所讀取的輸入值。
-x 執行指令後,會先顯示該指令及所下的引數。
+<引數> 取消某個set曾啟動的引數。
5、set命令的其他特徵:
開啟選項之後需要關閉,再執行set +選項就可以了。
set後接的位置引數預設會賦值給環境變數$1, $2, $3......,位置引數的數量賦值為$#。
set命令不帶選項與位置引數時,輸出SHELL環境變數與SHELL函式。
建議在指令碼的頭部設定set -eux ; set -o pipefail 或者,按bash -eux -o pipefail script.sh方式執行指令碼。
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/ryvv9q.html