標籤:os 使用 ar strong 檔案 sp div c on
set命令可以用來定製shell環境,使用選項“o”來開啟或者關閉選項。例如開啟選項:set -o 選項,關閉選項目:set +o 選項。
shopt命令是set命令的一種替代,很多方面都和set命令一樣,但它增加了很多選項。可有使用“-p”選項來查看shopt選項的設定。“-u”開 關表示一個複位的選項,“-s”表示選項當前被設定。
內建set命令選項
選項名 快捷開關 含義
allexport -a 從這個選項中被設定開始就自動標明要輸出的新變數或修改過的變數,直至選項被複位
braceexpand -B開啟花括弧擴充,它是一個預設設定
emacs 使用emacs內建編輯器進行命令列編輯,是一個預設設定
errexit-e 當命令返回一個非零退出狀態(失敗)時退出。讀取初始設定檔案時不設定
histexpand -H 執行曆史替換時開啟!和!!擴充,是一個預設設定
history 開啟命令列曆史、預設為開啟
ignoreeof 禁止用EOF(Ctrl+D)鍵退出shell。必須鍵入exit才能退出。等價於設定shell變數IGNOREEOF=10
keyword -k 將關鍵字參數放到命令的環境中
interactive-comments 對於互動式shell,把#符後面的文本作為注釋
monitor-m 設定作業控制
noclobber-C 防止檔案在重新導向時被重寫
noexec-n 讀命令,但不執行。用來檢查指令碼的文法。互動式運行時不開啟
noglob -d 禁止用路徑名擴充。即關閉萬用字元
notify-b 後台作業完成時通知使用者
nounset-u 擴充一個未設定的變數時顯示一個錯誤資訊
onecmd-t 在讀取和執行命令後退出
physical-P 設定時,在鍵入cd或pwd禁止符號連結。用物理目錄代替
privileged-p 設定後,shell不讀取.profile或ENV檔案,且不從環境繼承shell函數,將自動為setuid指令碼開啟特權
verbose -v 為調試開啟verbose模式
vi 使用vi內建編輯器進行命令列編輯
xtrace-x 為調試開啟echo模式
shopt命令選項
選項 含義
cdable_vars如果給cd內建命令的參數不是一個目錄,就假設它是一個變數名,變數的值是將要轉換到的目錄
cdspell 糾正cd命令中目錄名的較小拼字錯誤。檢查的錯誤包括顛倒順序的字元,遺漏的字元以及重複的字元。如果知道一處修改,正確的路徑就列印出,命令將繼續。只 用於互動式shell
checkhashbash在試圖執行一個命令前,先在雜湊表中尋找,以確定命令是否存在。如果命令不存在,就執行正常路徑搜尋
checkwinsizebash在每個命令後檢查視窗大小,如果有必要,就更新LINES和COLUMNS的值
cmdhistbash試圖將一個多行命令的所有行儲存在同一個曆史項中。這使得多行命令的重新編輯更方便
dotglobbash在檔案名稱擴充的結果中包括以點(.)開頭的檔案名稱
execfail 如果一個互動式shell不能執行指定給exec內建命令作為參數的檔案,它不會退出。如果exec失敗,一個互動式shell不會退出
expand_aliases 別名被擴充。預設為開啟
extglob開啟擴充的模式比對特徵(正常的運算式元字元來自Korn shell的檔案名稱擴充)
histappend 當shell退出時,曆史清單將添加到以HISTFILE變數的值命名的檔案中,而不是覆蓋檔案
histreedit 如果readline正被使用,使用者有機會重新編輯一個失敗的曆史替換
histverify 如果設定,且readline正被使用,曆史替換的結果不會立即傳遞給shell解析器。而是將結果行裝入readline編輯緩衝區中,允許進一步修 改
hostcomplete 如果設定,且readine正被使用,當正在完成一個包含@的詞時bash將試圖執行主機名稱補全。預設為開啟
huponexit 如果設定,當一個互動式登陸shell退出時,bash將發送一個SIGHUP(掛起訊號)給所有的作業
interactive_comments 在一個互動式shell中,允許以#開頭的詞以及同一行中其他的字元被忽略。預設為開啟
lithist 如果開啟,且cmdhist選項也開啟,多行命令將用嵌入的分行符號儲存到曆史中,而無需在可能的地方用分號來分隔
mailwarn 如果設定,且bash用來檢查郵件的檔案自從上次檢查後已經被訪問,將顯示訊息“The mail in mailfile has been read”
nocaseglob 如果設定,當執行檔案名稱擴充時,bash在不區分大小寫方式下匹配檔案名稱
nullglob如果設定,bash允許沒有匹配任何檔案的檔案名稱模式擴充成一個空串,而不是它們本身
promptvars 如果設定,提示串在被擴充後再經曆變數和參量擴充。預設為開啟
restricted_shell 如果shell在受限模式下啟動就設定這個選項。該值不能被改變。當執行開機檔案時,不能複位該選項,允許開機檔案發現shell是否是受限的
sourcepath 如果設定,source內建命令使用PATH的值來尋找包含作為參數提供的檔案的目錄。預設為開啟
source 點(.)的同義字
shift_verbose 如果該選項設定,當移動計數超過位置參量個數時,shift內建命令將列印一個錯誤訊息
自Bash 3.1版開始,引入新選項 nocasematch,可讓Bash在對比樣式時忽略大小寫。
shopt -s nocasematch #開啟選項
定製shell環境set和shopt