shopt
shopt命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性。
shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项。
语法
shopt [-pqsu] [-o] [optname ...]
选项
-s 开启一个选项
-u 禁用一个选项
-p 显示所有可设置选项的列表,并指示
是否已设置每个选项。输出以
可以重复用作输入的形式显示。(-p是默认操作)
-q 禁止正常输出;
返回状态指示选项是设置还是未设置。
如果多个选项参数使用' -q',如果所有选项都启用,则返回状态为零, 否则为非零
-o 将选项的值限制为为set内置函数的“-o”选项定义的值
如果使用-s
或-u
且没有选项参数,则显示仅限于那些分别设置或未设置的选项。除非另有说明,否则默认情况下禁用(关闭)shopt选项。
除非optname未启用*或者不是有效的shell选项,否则返回状态为零
shopt选项列表如下:
cdable_vars
如果设置了这个参数,
那么cd内置命令(不是目录)的参数将被假设为变量的名称,
该变量的值是要更改的目录
cdspell
纠正cd命令中目录名的较小拼写错误.
检查的错误包括颠倒顺序的字符,遗漏的字符以及重复的字符.
如果找到一处需修改之处,正确的路径将打印出,命令将继续.
只用于交互式shell
checkhash
如果设置了这个值,
Bash会在尝试执行之前检查哈希表中找到的命令是否存在。
如果命令不再存在,则执行正常路径搜索。
checkwinsize
如果设置了,Bash会在每个命令之后检查窗口大小,并在必要时更新行和列的值。
cmdhist
如果设置了,Bash将尝试在同一历史记录条目中保存多行命令的所有行。
这允许对多行命令进行简单的重新编辑。
dotglob
如果设置了,Bash包含以'.'开头的文件名。在文件名扩展的结果中。
execfail
如果一个非交互式shell不能执行指定给exec内置命令作为参数的文件,
它不会退出.如果exec失败,一个交互式shell不会退出
expand_aliases
如果设置了别名,则展开别名。此选项默认为交互式shell启用。
extglob
如果设置,则启用上述扩展模式匹配特性。
histappend
如果设置了历史列表,那么在shell退出时,历史列表将追加到历史文件中,而不是覆盖历史文件.
shopt -s histappend
要将每一行附加到历史记录中单独设置:
PROMPT_COMMAND='history -a'
使用这两个设置,一个新的shell将获取以前所有的历史记录行
shell而不是默认的'last window closed'> history
(历史文件由HISTFILE变量的值命名)
histreedit
如果设置,并且正在使用Readline,则用户有机会重新编辑
失败的历史记录.
histverify
如果设置,并且正在使用Readline,则历史替换的结果
不会立即传递给shell解析器。相反,生成的行
被加载到Readline编辑缓冲区中,允许进一步修改。
hostcomplete
如果设置,并且正在使用Readline,Bash将尝试在
当正在完成一个包含@的词时bash将试图执行主机名补全。
默认情况下启用此选项。
huponexit
如果设置,SIGHUP当交互式
登录shell退出时,Bash将发送到所有作业
interactive_comments
允许以“#”开头的单词在交互式shell中,
该单词和该行上的所有剩余字符被忽略。
此选项默认启用
lithist
如果启用了cmdhist选项,多行命令将通过嵌入换行符保存到历史记录中
mailwarn
如果设置了,并且Bash正在检查的邮件文件自上次检查以来已被访问,
则显示“邮件文件中的邮件已被读取”的消息。
no_empty_cmd_completion
如果设置了,并且正在使用Readline,那么当在空行上尝试完成时,
Bash将不会尝试搜索路径以寻找可能的完成.
nocaseglob
如果设置,Bash在执行
文件名扩展时以不区分大小写的方式匹配文件名
nullglob
如果设置,Bash允许不匹配任何文件的文件名模式扩展为
空字符串,而不是他们本身
progcomp
如果设置,则启用可编程完成功能。
默认情况下启用此选项。
promptvars
如果设置,则提示字符串在展开后会进行变量和参数
扩展。默认情况下启用此选项。
restricted_shell
如果在受限模式下启动,shell会设置此选项。
该值不能更改。
当启动文件执行时,这不会重置,允许启动文件发现shell是否受到限制。
shift_verbose
如果设置了此项,则shift当
移位计数超过位置参数的数量时,内置程序会输出错误消息
sourcepath
如果设置,source内置命令使用值PATH
来查找包含作为参数提供的文件的目录。
默认情况下启用此选项。
xpg_echo
如果设置,echo内置函数会
默认扩展反斜杠转义序列。
`shopt’ 是BASH内置命令。
shopt 命令实例:
linux命令:shopt -s cdspell cdspell -s shopt shopt -s cdspellrootopen.com
linux命令:shopt -s nocaseglob nocaseglob -s shopt shopt -s nocaseglobrootopen.com
linux命令:shopt -s histappend histappend -s shopt shopt -s histappendrootopen.com
linux命令:shopt -s globstar globstar -s shopt shopt -s globstarrootopen.com
linux命令:shopt -s checkwinsize checkwinsize -s shopt shopt -s checkwinsizerootopen.com
linux命令:shopt -s dotglob dotglob -s shopt shopt -s dotglobrootopen.com
linux命令:shopt -s cdable_vars cdable_vars -s shopt shopt -s cdable_varsrootopen.com
linux命令:shopt -s extglob; for f in *.ttf *.TTF; do g=$(showttf "$f" 2>/dev/null | grep -A1 "language=0.*FullName" | tail -1 | rev | cut -f1 | rev); g=${g##+( )}; mv -i "$f" "$g".ttf; done done "$g".ttf; "$f" -i mv )}; g=${g##+( rev); | -f1 cut | rev | -1 tail | "language=0.*FullName" -A1 grep | 2>/dev/null "$f" g=$(showttf do *.TTF; *.ttf in f for extglob; -s shopt shopt -s extglob; for f in *.ttf *.TTF; do g=$(showttf "$f" 2>/dev/null | grep -A1 "language=0.*FullName" | tail -1 | rev | cut -f1 | rev); g=${g##+( )}; mv -i "$f" "$g".ttf; donerootopen.com
linux命令:shopt -s globstar ; rm -f **/cscope.out **/cscope.out -f rm ; globstar -s shopt shopt -s globstar ; rm -f **/cscope.outrootopen.com
linux命令:shopt -s autocd autocd -s shopt shopt -s autocdrootopen.com
linux命令:shopt -s globstar; rm -rfv **/.svn **/.svn -rfv rm globstar; -s shopt shopt -s globstar; rm -rfv **/.svnrootopen.com
linux命令:shopt -s nullglob; for i in $(find "Your/file/system" -name "*.pdf"); do e="$(dirname $i)/$(basename $i '.pdf').png"; gs -sDEVICE=png16m -q -dPDFFitPage -g492x380 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dNOSUBSTDEVICECOLORS -o $e $i; done done $i; $e -o -dNOSUBSTDEVICECOLORS -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -g492x380 -dPDFFitPage -q -sDEVICE=png16m gs '.pdf').png"; $i $i)/$(basename e="$(dirname do "*.pdf"); -name "Your/file/system" $(find in i for nullglob; -s shopt shopt -s nullglob; for i in $(find "Your/file/system" -name "*.pdf"); do e="$(dirname $i)/$(basename $i '.pdf').png"; gs -sDEVICE=png16m -q -dPDFFitPage -g492x380 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -dNOSUBSTDEVICECOLORS -o $e $i; donerootopen.com
linux命令:shopt -s histappend ; PROMPT_COMMAND="history -a;$PROMPT_COMMAND" -a;$PROMPT_COMMAND" PROMPT_COMMAND="history ; histappend -s shopt shopt -s histappend ; PROMPT_COMMAND="history -a;$PROMPT_COMMAND"rootopen.com
linux命令:shopt -s histverify histverify -s shopt shopt -s histverifyrootopen.com
linux命令:shopt -s autocd autocd -s shopt shopt -s autocdrootopen.com
linux命令:shopt -s cdspell cdspell -s shopt shopt -s cdspellrootopen.com
linux命令:shopt-set() ... func to long, please refer to description description to refer please long, to func ... shopt-set() shopt-set() ... func to long, please refer to descriptionrootopen.com