萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> linux系統BASH shell set命令詳解

linux系統BASH shell set命令詳解

  BASH shell set命令詳解

  用set命令可以設置各種shell選項或者列出shell變量.單個選項設置常用的特性.在某些選項之後-o參數將特殊特性打開.在某些選項之後使用+o參數將關閉某些特性,不帶任何參數的set命令將顯示shell的全部變量.除非遇到非法的選項,否則set總是返回ture.

  當BASH shell被調用時,可以列出全部的選項.當前的選項集列在$-中.在option參數被處理後,其他的參數被賦值到位置參數中($1,$2,...,$n)

  set [--abefhkmnptuvxldCHP] [-o option name] [arguments ...]

  源碼:

  選項 說明

  -a 自動向已經修改的變量或為導出後序命令的變量作出標志

  -b 不是在原提示符之前,而是立即引發終止後台任務的狀態表表

  -e 如果命令帶非零值返回,立即退出

  -f 禁止帶擴展名的路徑

  -h 定義函數時,定位和存儲函數命令,當函數被執行時,通常查詢函數命令

  -k 所有的關鍵詞參數,而不只是那些命令名前的關鍵詞參數,被放在環境命令中

  -m 監視器模式,啟動任務控制.此選項默認支持系統shell交互.後台進程以單獨的進程組運行,在每次完成任務時顯示包含退出的狀態行

  -n 讀取命令但不執行命令.通常監查shell腳本的句法錯誤.交互shell被忽略

  -o option-name 選項名可以是下列之一:

  選項 說明

  allexport 同-a選項

  braceexpand shell執行花括號擴展,在默認情況下起作用

  emacs 使用emacs風格命令行編輯接口.除非shell以-noline-editing選項啟動,否則當shell交互時,通過默認啟動該選項

  errexit 同-e選項

  histexpand 同-H選項

  ignoreeof 其結果是好像shell命令IGNOREEOF=10被執行

  interactive 允許單詞前帶#號,以使得在交互shell中忽略命令行的全部字符-commands

  monitor 同-m選項

  noclobber 同-C選項

  noexec 同-n選項

  noglob 同-f選項

  nohash 同-d選項

  notify 同-b選項

  nounset 同-u選項

  physical 同-p選項

  posix 改變BASH屬性以匹配標准,默認操作不同於POSIX1003.2標准

  verbose 同-v選項

  vi 使用vi風格的命令行編輯器

  XTRACE 同-x選項,如果沒有給出選項名,顯示當前選項值

  -p 打開特權模式(在此模式,$ENV文件被處理,不能從環境中繼承

  shell函數.如果是有效用戶ID而不是實用戶組則自動啟動.關閉此選項將使得有效用戶和組IDs設置實用戶和組IDs)

  -t 在讀取命令並執行之後退出

  -u 當執行參數括展時,把非設置變量作為錯誤處理(如果擴展企圖出現在非設置變量中,shell顯示錯誤信息.如果不是交互式,則帶非凌值退出)

  -v 輸入行被讀取時,顯示shell輸入行

  -x 在每個簡單命令被擴展之後,顯示PS4擴展值,之後是要執行的命令

  -l 保存和恢復綁定在命令中的名稱

  -d 禁止執行查找散列命令(通常,命令被保存在散列表中,一旦被找到就不再繼續查找)

  -C 效果好像是執行了noclobber=shell命令

  -H 使用!風格的歷史替代(當shell交互時,在默認情況下,此選項有效)

  -P 如果設置此參數,當執行改變目錄命令cd時,不遵循符號鏈接,而是使用實際的目錄

  如果在選項後沒有參數,不設置位置參數.否則,即使一些參數以a選項開始,也要把位置參數設置為argument- 結束選項的信號,將引發其余的參數被賦值到位置參數中(-x和-v選項被關閉.如果沒有argument,位置參數將保留未改變的參數)
copyright © 萬盛學電腦網 all rights reserved