Shell_Linux shopt 指令
1.shopt 命令简介 2.shopt 参数含义说明 3.shopt 使用示例 1)extglob 参数 shopt 命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性。 shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项。 1.shopt 命令简介简介 shopt [-psu] [optname …] -s 开启某个选项. -u 关闭某个选项. -p 列出所有可设置的选项.执行shopt 看看都有那些选项 与 系统的默认值 [root@master four]# shopt autocd off cdable_vars off cdspell off checkhash off checkjobs off checkwinsize on cmdhist on compat31 off compat32 off compat40 off dirspell off dotglob off execfail off expand_aliases on extdebug off extglob on extquote on failglob off force_fignore on globstar off gnu_errfmt off histappend off histreedit off histverify off hostcomplete on huponexit off interactive_comments on lithist off login_shell on mailwarn off no_empty_cmd_completion off nocaseglob off nocasematch off nullglob off progcomp on promptvars on restricted_shell off shift_verbose off sourcepath on xpg_echo off [root@master four]# shopt autocd off cdable_vars off cdspell off checkhash off checkjobs off checkwinsize on cmdhist on compat31 off compat32 off compat40 off dirspell off dotglob off execfail off expand_aliases on extdebug off extglob on extquote on failglob off force_fignore on globstar off gnu_errfmt off histappend off histreedit off histverify off hostcomplete on huponexit off interactive_comments on lithist off login_shell on mailwarn off no_empty_cmd_completion off nocaseglob off nocasematch off nullglob off progcomp on promptvars on restricted_shell off shift_verbose off sourcepath on xpg_echo off 2.shopt 参数含义说明 上面展示了 shopt 所有的参数。这一大堆参数估计大家看名字难以猜测含义,下面给出这些参数的含义。 选项 含义 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 : 如果设置,当正在完成一个包含@的词时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 : 点(.)的同义词 3.shopt 使用示例 博主对 shopt 中的参数使用的并不太多, extglob 参数 : 主要使用的参数是extglob 如果开启 extglob 选项,shell 将启用模式匹配. 可参考 ■ Shell 模式匹配 查看 extglob 选项是否开启(默认是off) [root@master load_data]# shopt extglob extglob off 开启 extglob 选项 此时查看 extglob 选项是否开启 [root@master four]# shopt -s extglob [root@master four]# shopt extglob extglob on 关闭 extglob 选项 [root@master four]# shopt -u extglob [root@master four]# shopt extglob extglob off ========================= 实例 1.将目录下所有的文件和目录移动到 backup 目录中. 当前目录下3个文件以及两个目录 $ ls dir1 dir2 file1 file2 file3 $ mkdir -p backup $ mv !(backup) backup/ 查看结果 $ lsbackup $ ls backup/ dir1 dir2 file1 file2 file3 $ ls backup dir1 dir2 file1 file2 file3 $ rm -rf file[1-3] $ ls backup dir1 dir2 3.移动除了 dir1 目录以及 file1 文件到 backup 目录下 $ mv !(dir1|file1|backup) backup/$ ls backup dir1 file1 $ ls backup/ dir2 file2 file3 其他的需求还需要结合 shell 模式匹配进行举一反三.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |