Linux下用shopt命令来帮我们自动纠错输入cd 错误

  标签:Linux 自动纠错 shopt 输入 命令

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://world77.blog.51cto.com/414605/336147
下面是关于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
如果设置 ,且 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
点 (.)的同义词
 
            假设你在Linux下输入cd 命令的时候经常出错,就可以用shopt这个命令来帮你自动纠错。看以下效果:
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd /etc/maii                         //还没有执行shopt命令之前
-bash: cd: /etc/maii: 没有那个文件或目录
[root@localhost ~]# shopt -s cdspell
[root@localhost ~]# cd /etc/maii                        //故意输错路径       
/etc/mail
[root@localhost mail]# pwd                           //可以了,自动纠错成功
/etc/mail
[root@localhost mail]# cd /et/htt                               //呵呵,还没有那么智能,遗憾啊
-bash: cd: /et/htt: 没有那个文件或目录
[root@localhost mail]# cd /etc/htt                         //呵呵,还没有那么智能,遗憾啊
-bash: cd: /etc/htt: 没有那个文件或目录
[root@localhost mail]# cd /etc/htpd                             //故意输错路径
/etc/httpd
[root@localhost httpd]# pwd                                       //可以了,自动纠错成功
/etc/httpd
[root@localhost httpd]# 
       
        此命令只对当前终端有效,换个终端或者退出之后,需要重新执行才能有效。。。

你可能感兴趣的:(linux,职场,休闲,shopt)