shell內建命令Shopt

來源:互聯網
上載者:User

shell內建命令Shopt 此內建命令改變額外的shell的可選行為。 shopt   shopt [-pqsu] [-o] [optname …] 切換那些用來控制shell的各種可選的行為的變數的值。不帶選項,或使用-p選項,則顯示所有可設定的選項的列表,同時表明該選項是否被設定。 -p選項以可重用為輸入的形式來顯示輸出。其他選項有以下含義:  -s 啟用每個optname。(set) -u 關閉每個optname。(unset) -q 抑制正常輸出;返回狀態表示optname是否啟用。當有-q選項,且如果有多個optname參數時,若所有optname被啟用,則傳回值是零;否則返回非零值。 -o 限制optname的值,僅可以使用內建命令set的-o選項所定義的值。(見內建命令set) 如果使用-s或者-u,且沒有optname參數,則顯示結果的範圍僅限於那些啟用或關閉的相應選項。 除非特別說明,shopt選項預設是關閉的。 列出選項時,如果所有optname都是啟用狀態,則傳回值是0,否則是非零值。在設定或取消選項時,返回狀態是零,除非某個optname不是有效shell選項。   shopt的選項列表如下: autocd 如果設定的話,某個目錄的名字被當做cd命令的參數執行。此選項僅在互動式shell中使用。 cdable_vars 如果設定的話,內建命令cd的不是目錄名的參數,被當做變數名,該變數的值就是要被切換到的目錄。 cdspell 如果設定,cd命令的目錄部分的小的拼字錯誤將得到更正。這些錯誤包括顛倒的字元,缺少的字元,和多餘的一個字元。如果能找到校正後的結果,則校正後的路徑被列印出來,並執行命令。此選項僅用於互動式shell。 checkhash 如果設定,Bash在執行該命令前,在雜湊表中檢查是否存在該命令。如果在雜湊表中不存在,則執行一個正常的路徑搜尋。 checkjobs 如果設定,Bash在退出互動shell前,列出所有停止的和正在啟動並執行作業的狀態。如果有任何作業正在運行,這將導致退出的時間延遲到第二次沒有幹預命令的退出(參見作業控制)。如果有任何作業被停止,shell總是延遲退出。 checkwinsize 如果設定,Bash在每個命令後,檢查視窗大小,如果必要的話,更新LINES和COLUMNS的值。 cmdhist 如果設定,Bash在同一個曆史實體裡面儲存一個多行命令的所有行的內容。這樣便於重新編輯多行命令。 compat31 如果設定,Bash改變它的行為以符合3.1版本,條件命令操作符‘=~’被引號包括的參數的方式。 compat32 如果設定,Bash改變它的行為以符合3.2版本,當使用‘[[’條件命令的'<' 和 '>'操作符時,地區特定字串比較的方式。bash-4.0之前版本的Bash使用ASCII定序和strcmp(3);bash-4.1及之後的版本使用目前範圍設定的定序和strcoll(3)。  compat40 如果設定,Bash改變它的行為以符合4.0版本,當使用‘[[’條件命令的'<' 和 '>'操作符時,地區特定字串比較的方式(見上一個項目),以及對中斷一個命令列表的影響。 compat41 如果設定,Bash在POSIX模式時,將位於雙引號參數擴充中的單引號當做特殊字元。單引號必須匹配(偶數個),單引號之間的字元被認為是引號包圍的。這是POSIX模式4.1版本的行為。其他預設的Bash的行為仍然和以前的版本一樣。 dirspell 如果設定,當輸入的目錄名不存在時,Bash將在輸入過程中自動修改拼字。 dotglob 如果設定,Bash在檔案名稱擴充的結果中包含以‘.’開頭的檔案名稱。 execfail 如果設定,非互動shell在不能執行內建命令exec的參數所指定的檔案時,將不會退出。如果exec失敗,互動式shell不退出。 expand_aliases 如果設定,所有別名以下述“別名”節的描述擴充。互動式shell中,此選項預設啟用。 extdebug 如果設定,啟用調試器可用的行為: 1.declare內建命令的-F選項,顯示作為參數提供的每個對應的函數名的源檔案和行號。 2.如果使用DEBUG陷阱啟動並執行命令返回一個非零值,下一個命令被跳過且不執行。 3.如果使用DEBUG陷阱啟動並執行命令返回一個值2,並且shell在子過程中(是使用.或者source命令執行)執行,則      類比一個對return的調用。 4.BASH_ARGC 和 BASH_ARGV 按照他們的描述更新。(參見Bash變數) 5.啟用函數跟蹤:命令替換,shell函數,和使用( command )調用的子shell繼承DEBUG和RETURN陷阱。 6.啟用錯誤跟蹤:命令替換,shell函數,和使用( command )調用的子shell繼承ERR陷阱。 extglob 如果設定,啟用上述的擴充模式比對功能。(見模式比對) extquote 如果設定,在雙引號中的 ${parameter} 擴充中的$'string' 和 $"string" 被執行引號擴充。此選項預設啟用。 failglob 如果設定,檔案名稱擴充時發生的模式比對失敗會引發擴充錯誤。 force_fignore 如果設定,當執行單詞補全時,由FIGNORE指定的那些尾碼的shell變數將忽略單詞,即使被忽略的單詞是唯一的補全候補。關於FIGNORE,請查看bash變數章節。該選項預設啟用。 globstar 如果設定,在檔案名稱擴充中使用的模式“**”將匹配所有檔案和0個或多個目錄和子目錄。如果模式以‘/’結尾,則僅僅匹配目錄和子目錄。 gnu_errfmt 如果設定,shell錯誤資訊將按照標準GNU錯誤資訊格式輸出。 histappend 如果設定,當shell退出時,命令曆史列表將追加到由變數HISTFILE設定的檔案中,而不是覆蓋該檔案。 histreedit 如果設定,將使用Readline,使用者將有機會重新編輯失敗的命令曆史替換。 histverify 如果設定,將使用Readline,命令曆史替換的結果不會立即傳遞給shell解譯器。而是被載入到Readline緩衝區,以允許將來修改。 hostcomplete 如果設定,將使用Readline,當單詞含有‘@’時, Bash會嘗試執行主機名稱完成。(請參看“命令完成”)。該選項預設啟用。 huponexit 如果設定,當互動shell退出時,Bash將發送SIGHUP到所有作業。(請參看“訊號”) interactive_comments 在互動shell中,以‘#’開頭的單詞將導致該單詞及該行該單詞之後的所有字元都被忽略。該選項預設開啟。 lastpipe 如果設定,並且作業控制未啟用,則運行管道的最後一個命令的shell不在當前shell環境的後台執行。 lithist 如果設定,並且cmdhist選項被設定了,則多行命令被儲存到曆史中時,包含分行符號,而不是使用分號代替。 login_shell 如果shell是從登入shell啟動的,則該shell設定此選項。(見“調用 Bash”)該值不可更改。 mailwarn 如果設定,並且Bash用來檢測郵件的檔案,在上次檢測之後再次被存取時,則顯示“The mail in mail file has been read”。 no_empty_cmd_completion 如果設定,並且使用了Readline,Bash在空行上不再試圖從PATH中搜尋可用的命令完成。 nocaseglob 如果設定,執行檔案名稱擴充時,Bash以大小寫不敏感方式匹配檔案名稱。 nocasematch 如果設定,執行case或者 [[ 條件命令時,Bash以大小寫不敏感方式匹配模式。 nullglob 如果設定,Bash允許不匹配任何檔案的檔案名稱模式被擴充為一個Null 字元串,而不是模式本身。 progcomp 如果設定,則可程式化自動完成工具被啟用。(見“可程式化自動完成”)。此選項預設啟用。 promptvars 如果設定,則提示符字串在擴充後,還要執行參數擴充,命令替換,算數擴充和引號去除。(見列印提示符)。此選項預設啟用。 restricted_shell 如果shell以限制模式被啟動,則設定此選項。(見“限制shell”)。該值不可更改。開機檔案被執行時,不重設此選項,以允許開機檔案能夠發現shell是否是限制的。 shift_verbose 如果設定,當shift計數器超過位置參數個數時,shift內建命令列印一條錯誤資訊。 sourcepath 如果設定,source內建命令使用PATH的值,去尋找作為參數的檔案名稱所在的目錄。此選項預設啟用。 xpg_echo 如果設定,echo內建命令預設擴充反斜線逸出序列。 如果所有optnames都啟用了,則列出選項的命令返回狀態為0,否則為非零值。在設定或者取消選項的設定時返回狀態是0,除非optname不是有效shell選項。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.