定製shell環境set和shopt

來源:互聯網
上載者:User

標籤: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.