標籤:bash shell選項 set功能 功能開關
使用內建的set和shopt命令設定bash選項
set命令可以用來定製shell環境,使用選項“o”來開啟或者關閉選項。例如開啟選項:set -o 選項,關閉選項目:set +o 選項。
例如要開啟vi互動式命令列編輯,則如下:
[[email protected] ~]# set -o #查看當前設定情況 allexport off braceexpand on emacs on errexit off errtrace off functrace off hashall on histexpand on history on ignoreeof off interactive-comments on keyword off monitor on noclobber off noexec off noglob off nolog off notify off nounset off onecmd off physical off pipefail off posix off privileged off verbose off vi off #關閉中 xtrace off [[email protected] ~]# set -o vi #把vi選項開啟 [[email protected] ~]# set -o #查看當前設定情況 allexport off braceexpand on emacs off errexit off errtrace off functrace off hashall on histexpand on history on ignoreeof off interactive-comments on keyword off monitor on noclobber off noexec off noglob off nolog off notify off nounset off onecmd off physical off pipefail off posix off privileged off verbose off vi on #已經開啟 xtrace off |
內建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命令是set命令的一種替代,很多方面都和set命令一樣,但它增加了很多選項。可有使用“-p”選項來查看shopt選項的設定。“-u”開關表示一個複位的選項,“-s”表示選項當前被設定。
[[email protected] ~]# shopt -p #查看當前設定情況 shopt -u cdable_vars shopt -u cdspell shopt -u checkhash shopt -s checkwinsize shopt -s cmdhist shopt -u dotglob shopt -u execfail shopt -s expand_aliases shopt -u extdebug shopt -u extglob shopt -s extquote shopt -u failglob shopt -s force_fignore shopt -u gnu_errfmt shopt -u histreedit shopt -u histappend shopt -u histverify shopt -s hostcomplete shopt -u huponexit shopt -s interactive_comments shopt -u lithist shopt -s login_shell shopt -u mailwarn shopt -u no_empty_cmd_completion shopt -u nocaseglob shopt -u nullglob shopt -s progcomp shopt -s promptvars shopt -u restricted_shell shopt -u shift_verbose shopt -s sourcepath shopt -u xpg_echo [[email protected] ~]# shopt -s cdspell #把cdspell選項開啟 [[email protected] ~]# shopt -p cdspell #列印cdspell設定 shopt -s cdspell [[email protected] ~]# cd /raot #故意拼字錯誤 /root [[email protected] ~]# pwd #查看目前的目錄 /root [[email protected] ~]# cd /usr/loca/bin #故意拼字錯誤 /usr/local/bin [[email protected] bin]# pwd #查看目前的目錄 /usr/local/bin [[email protected] bin]# shopt -u cdspell #把cdspell選項開啟 [[email protected] bin]# shopt -p cdspell #列印cdspell設定 shopt -u cdspell [[email protected] bin]# cd /raot #故意拼字錯誤 -bash: cd: /raot: 沒有那個檔案或目錄 #進入目錄錯誤 |
shopt命令選項
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/4D/C9/wKiom1RZwxeiVbE_AAbeDmATTQA475.jpg" style="float:none;" title="1.png" alt="wKiom1RZwxeiVbE_AAbeDmATTQA475.jpg" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/4D/C8/wKioL1RZw3mDwq5KAALb_ZTv-XM899.jpg" style="float:none;" title="2.png" alt="wKioL1RZw3mDwq5KAALb_ZTv-XM899.jpg" />
本文出自 “Professor哥” 部落格,請務必保留此出處http://professor.blog.51cto.com/996189/1572113
Bash Shell-使用內建的set和shopt命令設定bash選項