選項(xiàng)名 | 快捷開(kāi)關(guān) | 含義 |
---|---|---|
allexport | -a | 從這個(gè)選項(xiàng)中被設(shè)置開(kāi)始就自動(dòng)標(biāo)明要輸出的新變量或修改過(guò)的變量,直至選項(xiàng)被復(fù)位 |
braceexpand | -B | 打開(kāi)花括號(hào)擴(kuò)展,它是一個(gè)默認(rèn)設(shè)置 |
emacs | 使用emacs內(nèi)置編輯器進(jìn)行命令行編輯,是一個(gè)默認(rèn)設(shè)置 | |
errexit | -e | 當(dāng)命令返回一個(gè)非零退出狀態(tài)(失?。r(shí)退出。讀取初始化文件時(shí)不設(shè)置 |
histexpand | -H | 執(zhí)行歷史替換時(shí)打開(kāi)!和!!擴(kuò)展,是一個(gè)默認(rèn)設(shè)置 |
history | 打開(kāi)命令行歷史、默認(rèn)為打開(kāi) | |
ignoreeof | 禁止用EOF(Ctrl+D)鍵退出shell。必須鍵入exit才能退出。等價(jià)于設(shè)置shell變量IGNOREEOF=10 | |
keyword | -k | 將關(guān)鍵字參數(shù)放到命令的環(huán)境中 |
interactive-comments | 對(duì)于交互式shell,把#符后面的文本作為注釋 | |
monitor | -m | 設(shè)置作業(yè)控制 |
noclobber | -C | 防止文件在重定向時(shí)被重寫(xiě) |
noexec | -n | 讀命令,但不執(zhí)行。用來(lái)檢查腳本的語(yǔ)法。交互式運(yùn)行時(shí)不開(kāi)啟 |
noglob | -d | 禁止用路徑名擴(kuò)展。即關(guān)閉通配符 |
notify | -b | 后臺(tái)作業(yè)完成時(shí)通知用戶 |
nounset | -u | 擴(kuò)展一個(gè)未設(shè)置的變量時(shí)顯示一個(gè)錯(cuò)誤信息 |
onecmd | -t | 在讀取和執(zhí)行命令后退出 |
physical | -P | 設(shè)置時(shí),在鍵入cd或pwd禁止符號(hào)鏈接。用物理目錄代替 |
privileged | -p | 設(shè)置后,shell不讀取.profile或ENV文件,且不從環(huán)境繼承shell函數(shù),將自動(dòng)為setuid腳本開(kāi)啟特權(quán) |
verbose | -v | 為調(diào)試打開(kāi)verbose模式 |
vi | 使用vi內(nèi)置編輯器進(jìn)行命令行編輯 | |
xtrace | -x | 為調(diào)試打開(kāi)echo模式 |
shopt命令選項(xiàng)
shopt命令是set命令的一種替代,很多方面都和set命令一樣,但它增加了很多選項(xiàng)??捎惺褂谩?p”選項(xiàng)來(lái)查看shopt選項(xiàng)的設(shè)置?!?u”開(kāi)關(guān)表示一個(gè)復(fù)位的選項(xiàng),“-s”表示選項(xiàng)當(dāng)前被設(shè)置。
shopt命令參數(shù)用法
選項(xiàng) | 含義 |
---|---|
cdable_vars | 如果給cd內(nèi)置命令的參數(shù)不是一個(gè)目錄,就假設(shè)它是一個(gè)變量名,變量的值是將要轉(zhuǎn)換到的目錄 |
cdspell | 糾正cd命令中目錄名的較小拼寫(xiě)錯(cuò)誤.檢查的錯(cuò)誤包括顛倒順序的字符,遺漏的字符以及重復(fù)的字符.如果找到一處需修改之處,正確的路徑將打印出,命令將繼續(xù).只用于交互式shell |
checkhash | bash在試圖執(zhí)行一個(gè)命令前,先在哈希表中尋找,以確定命令是否存在.如果命令不存在,就執(zhí)行正常的路徑搜索 |
checkwinsize | bash在每個(gè)命令后檢查窗口大小,如果有必要,就更新LINES和COLUMNS的值 |
cmdhist | bash試圖將一個(gè)多行命令的所有行保存在同一個(gè)歷史項(xiàng)中.這是的多行命令的重新編輯更方便 |
dotglob | Bash在文件名擴(kuò)展的結(jié)果中包括以點(diǎn)(.)開(kāi)頭的文件名 |
execfail | 如果一個(gè)非交互式shell不能執(zhí)行指定給exec內(nèi)置命令作為參數(shù)的文件,它不會(huì)退出.如果exec失敗,一個(gè)交互式shell不會(huì)退出 |
expand_aliases | 別名被擴(kuò)展.缺省為打開(kāi) |
extglob | 打開(kāi)擴(kuò)展的模式匹配特性(正常的表達(dá)式元字符來(lái)自Korn shell的文件名擴(kuò)展) |
histappend | 如果readline正被使用,用戶有機(jī)會(huì)重新編輯一個(gè)失敗的歷史替換 |
histverify | 如果設(shè)置,且readline正被使用,歷史替換的結(jié)果不會(huì)立即傳遞給shell解釋器.而是將結(jié)果行裝入readline編輯緩沖區(qū)中,允許進(jìn)一步修改 |
hostcomplete | 如果設(shè)置,且readline正被使用,當(dāng)正在完成一個(gè)包含@的詞時(shí)bash將試圖執(zhí)行主機(jī)名補(bǔ)全.缺省為打開(kāi) |
huponexit | 如果設(shè)置,當(dāng)一個(gè)交互式登錄shell退出時(shí),bash將發(fā)送一個(gè)SIGHUP(掛起信號(hào))給所有的作業(yè) |
interactive_comments | 在一個(gè)交互式shell中.允許以#開(kāi)頭的詞以及同一行中其他的字符被忽略.缺省為打開(kāi) |
lithist | 如果打開(kāi),且cmdhist選項(xiàng)也打開(kāi),多行命令講用嵌入的換行符保存到歷史中,而無(wú)需在可能的地方用分號(hào)來(lái)分隔 |
mailwarn | 如果設(shè)置,且bash用來(lái)檢查郵件的文件自從上次檢查后已經(jīng)被訪問(wèn),將顯示消息”The mail in mailfile has been read” |
nocaseglob | 如果設(shè)置,當(dāng)執(zhí)行文件名擴(kuò)展時(shí),bash在不區(qū)分大小寫(xiě)的方式下匹配文件名 |
nullglob | 如果設(shè)置,bash允許沒(méi)有匹配任何文件的文件名模式擴(kuò)展成一個(gè)空串,而不是他們本身 |
promptvars | 如果設(shè)置,提示串在被擴(kuò)展后再進(jìn)行變量和參量擴(kuò)展.缺省為打開(kāi) |
restricted_shell | 如果shell在受限模式下啟動(dòng)就設(shè)置這個(gè)選項(xiàng).該值不能被改變.當(dāng)執(zhí)行啟動(dòng)文件時(shí)不能復(fù)位該選項(xiàng),允許啟動(dòng)文件發(fā)現(xiàn)shell是否受限 |
shift_verbose | 如果該選項(xiàng)設(shè)置,當(dāng)移動(dòng)計(jì)數(shù)超出位置參量個(gè)數(shù)時(shí),shift內(nèi)置命令將打印一個(gè)錯(cuò)誤消息 |
sourcepath | 如果設(shè)置,source內(nèi)置命令使用PATH的值來(lái)尋找作為參數(shù)提供的文件的目錄.缺省為打開(kāi) |
source | 點(diǎn)(.)的同義詞 |
刪除目錄下除了filename之外的所有文件
下來(lái)列出了不同的擴(kuò)展模式匹配操作符,這些模式列表是一個(gè)用 | 分割包含一個(gè)或者多個(gè)文件名的列表:
通配符 | 含義 |
---|---|
*(模式列表) | 匹配 0 個(gè)或者多個(gè)出現(xiàn)的指定模式 |
?(模式列表) | 匹配 0 個(gè)或者 1 個(gè)出現(xiàn)的指定模式 |
@(模式列表) | 匹配 1 個(gè)或者多個(gè)出現(xiàn)的指定模式 |
!(模式列表) | 匹配除了一個(gè)指定模式之外的任何內(nèi)容 |
打開(kāi)extglob shell選項(xiàng)
shopt -s extglob
刪除目錄下除了filename之外的所有文件
rm -v !("filename")
刪除除了filename1和filename2之外的所有文件
rm -v !("filename1"|"filename2")
刪除除了 .zip 之外的所有文件
rm -i !(*.zip)
關(guān)閉extglob shell選項(xiàng)
shopt -u extglob
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
標(biāo)簽:廣東 贛州 撫州 海北 烏蘭察布 連云港 昌都 臨沂
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell中set與shopt命令選項(xiàng)的含義和使用示例》,本文關(guān)鍵詞 Shell,中,set,與,shopt,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。