发布日期:2017-03-17 18:16:21

shopt命令:  全写为shell option命令

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

其语法:

shopt 选项 参数

选项 
-s:激活指定的shell行为选项;
-u:关闭指定的shell行为选项。

参数 
shell选项:指定要操作的shell选项。

例如bash shopt:

$shopt
cdable_vars    	off
cdspell        	off
checkhash      	off
checkwinsize   	on
cmdhist        	on
compat31       	off
dotglob        	off
execfail       	off
expand_aliases 	on
extdebug       	off
extglob        	off
extquote       	on
failglob       	off
force_fignore  	on
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

 

Bash Shell有个extglob选项,开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便。 

开启方法很简单,使用shopt命令:shopt -s extglob 
关闭,使用shopt命令:shopt -u extglob 

开启之后,以下5个模式匹配操作符将被识别: 

  1. ?(pattern-list) - 所给模式匹配0次或1次;
  2. *(pattern-list) - 所给模式匹配0次以上包括0次;
  3. +(pattern-list) - 所给模式匹配1次以上包括1次;
  4. @(pattern-list) - 所给模式仅仅匹配1次;
  5. !(pattern-list) - 不匹配括号内的所给模式。 

示例 

删除文件名不以jpg结尾的文件: 

rm -rf !(*jpg) 

删除文件名以jpg或png结尾的文件: 

rm -rf *@(jpg|png) 

发表评论