【Linux】一步一步学Linux——shopt命令(214)
发布日期:2021-06-29 20:45:11 浏览次数:2 分类:技术文章

本文共 4766 字,大约阅读时间需要 15 分钟。

00. 目录

文章目录

01. 命令概述

shopt命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性。shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项。

02. 命令格式

用法:shopt [-pqsu] [-o] [选项名 ...]

03. 常用选项

选项:	-o        限制 OPTNAME 为定义用于`set -o' 的选项	-p        打印每个 shell 选项并标注它的状态。	-q        抑制输出	-s        启用(设定)每个 OPTNAME 选项	-u        禁用(反设定)每个 OPTNAME 选项

04. 参考示例

4.1 显示当前所有可以设置的shell操作选项

[deng@localhost ~]$ shoptautocd          offcdable_vars     offcdspell         offcheckhash       offcheckjobs       offcheckwinsize    oncmdhist         oncompat31        offcompat32        offcompat40        offcompat41        offdirexpand       offdirspell        offdotglob         offexecfail        offexpand_aliases  onextdebug        offextglob         onextquote        onfailglob        offforce_fignore   onglobstar        offgnu_errfmt      offhistappend      onhistreedit      offhistverify      offhostcomplete    offhuponexit       offinteractive_comments    onlastpipe        offlithist         offlogin_shell     onmailwarn        offno_empty_cmd_completion offnocaseglob      offnocasematch     offnullglob        offprogcomp        onpromptvars      onrestricted_shell        offshift_verbose   offsourcepath      onxpg_echo        off[deng@localhost ~]$

4.2 显示所有的配置选项

[root@localhost ~]# shopt -pshopt -u autocdshopt -u cdable_varsshopt -u cdspellshopt -u checkhashshopt -u checkjobsshopt -s checkwinsizeshopt -s cmdhistshopt -u compat31shopt -u compat32shopt -u compat40shopt -u compat41shopt -u direxpandshopt -u dirspellshopt -u dotglobshopt -u execfailshopt -s expand_aliasesshopt -u extdebugshopt -s extglobshopt -s extquoteshopt -u failglobshopt -s force_fignoreshopt -u globstarshopt -u gnu_errfmtshopt -s histappendshopt -u histreeditshopt -u histverifyshopt -u hostcompleteshopt -u huponexitshopt -s interactive_commentsshopt -u lastpipeshopt -u lithistshopt -s login_shellshopt -u mailwarnshopt -u no_empty_cmd_completionshopt -u nocaseglobshopt -u nocasematchshopt -u nullglobshopt -s progcompshopt -s promptvarsshopt -u restricted_shellshopt -u shift_verboseshopt -s sourcepathshopt -u xpg_echo[root@localhost ~]#

4.3 查看打开的配置选项

[root@localhost ~]# shopt -scheckwinsize    oncmdhist         onexpand_aliases  onextglob         onextquote        onforce_fignore   onhistappend      oninteractive_comments    onlogin_shell     onprogcomp        onpromptvars      onsourcepath      on[root@localhost ~]#

4.4 查看关闭的配置选项

[root@localhost ~]# shopt  -uautocd          offcdable_vars     offcdspell         offcheckhash       offcheckjobs       offcompat31        offcompat32        offcompat40        offcompat41        offdirexpand       offdirspell        offdotglob         offexecfail        offextdebug        offfailglob        offglobstar        offgnu_errfmt      offhistreedit      offhistverify      offhostcomplete    offhuponexit       offlastpipe        offlithist         offmailwarn        offno_empty_cmd_completion offnocaseglob      offnocasematch     offnullglob        offrestricted_shell        offshift_verbose   offxpg_echo        off[root@localhost ~]#

4.5 开启cd拼写检查

[root@localhost ~]# shopt -s cdspell[root@localhost ~]# shopt | grep cdspellcdspell         on[root@localhost ~]#

4.6 打印cdspell设置

[root@localhost ~]# shopt -p cdspellshopt -s cdspell[root@localhost ~]#

4.7 禁用cd拼写检查

[root@localhost ~]# shopt -u cdspell [root@localhost ~]# shopt | grep cdspellcdspell         off[root@localhost ~]#

05. 参数说明

cdable_vars

如果给cd内置命令的参数不是一个目录,就假设它是一个变量名,变量的值是将要转换到的目录

cdspell

纠正cd命令中目录名的较小拼写错误.检查的错误包括颠倒顺序的字符,遗漏的字符以及重复的字符.如果找到一处需修改之处,正确的路径将打印出,命令将继续.只用于交互式shell

checkhash

bash在试图执行一个命令前,先在哈希表中寻找,以确定命令是否存在.如果命令不存在,就执行正常的路径搜索

checkwinsize

bash在每个命令后检查窗口大小,如果有必要,就更新LINES和COLUMNS的值

cmdhist

bash试图将一个多行命令的所有行保存在同一个历史项中.这是的多行命令的重新编辑更方便

dotglob

Bash在文件名扩展的结果中包括以点(.)开头的文件名

execfail

如果一个非交互式shell不能执行指定给exec内置命令作为参数的文件,它不会退出.如果exec失败,一个交互式shell不会退出

expand_aliases

别名被扩展.缺省为打开

extglob

打开扩展的模式匹配特性(正常的表达式元字符来自Korn shell的文件名扩展)

histappend

如果readline正被使用,用户有机会重新编辑一个失败的历史替换

histverify

如果设置,且readline正被使用,历史替换的结果不会立即传递给shell解释器.而是将结果行装入readline编辑缓冲区中,允许进一步修改

hostcomplete

如果设置,且readline正被使用,当正在完成一个包含@的词时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是否受限

shift_verbose :

如果该选项设置,当移动计数超出位置参量个数时,shift内置命令将打印一个错误消息

sourcepath :

如果设置,source内置命令使用PATH的值来寻找作为参数提供的文件的目录.缺省为打开

source :

点(.)的同义词

06. 附录

参考:

转载地址:https://dengjin.blog.csdn.net/article/details/100566309 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Linux】一步一步学Linux——builtin命令(215)
下一篇:【Linux】一步一步学Linux——history命令(213)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月10日 07时25分38秒