set命令
set命令作用主要是顯示系統中已經存在的shell變數,以及設定shell變數的新變數值。使用set更改shell特性時,符號”+”和”-“的作用分別是開啟和關閉指定的模式。set命令不能夠定義新的shell變數。如果要定義新的變數,可以使用declare命令以變數名=值的格式進行定義即可。 文法
set(選項)(參數) 選項
-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曾啟動的參數。
執行個體
使用declare命令定義一個新的環境變數”my_env”,並且將其值設定為”test”,輸入如下命令:
declare my_env='test' #定義新環境變數
再使用set命令將新定義的變數輸出為環境變數,輸入如下命令:
set -a my_env #設定為環境變數
執行該命令後,將會新添加對應的環境變數。使用者可以使用env命令和grep命令分別顯示和搜尋環境變數”mylove”,輸入命令如下:
env | grep mylove #顯示環境變數值
此時,該命令執行後,將輸出查詢到的環境變數值。
來自: http://man.linuxde.net/set