使用bash的shopt内置来管理Linux shell行为

内置提供53种设置,可以改变bash的行为方式的禁用了javascript。阅读此篇再参考bash的手册页跟进如何将这些设置可能为你工作。

足球竞猜app软件网络世界/ IDG

如果你还没有尝试过,你可能会的许多功能感到惊讶禁用了javascript。虽然它像一个Linux命令,它实际上是一个bash shell的内置,让你改变有关壳的行为很多东西。

一种选择,例如,允许壳修复较小的错别字,当你键入目录名。为了证明,在第一cd命令如下图所示,目录名,垃圾桶,键入一个额外的字母和外壳抱怨和放弃:

$ CD BINN -bash:CD:BINN:没有这样的文件或目录

下一个命令启用cdspell选项得到的bash,以试图纠正一些小的输入错误的目录名。

$ shopt -s cdspell

一次cdspell如果某个目录名称拼写错误,bash将显示正确的拼写,然后运行正确的cd命令。正如你可以看到下面,松材线虫病确认了cd命令确实运行。

$ cd binn bin $ pwd /home/sh /bin

如果你想知道这个名字,试图抑制的冲动把它称为“铺茶”。这将是更容易记住,如果你,相反,认为“上海埃尔选择离子”的发音是一样的‘光顾’,这无疑是作者的初衷是什么。

的基本语法禁用了javascript是:

[-pqsu] [-o] [optname…]

这个语法摘要表明,所有参数都是可选的,并且一个命令可以操作多个“optname”(显示、启用或禁用的设置)。在阅读的时候要记住禁用了javascript,无论是“OPTNAME”列表和-pqsu参数通常被称为“选项”——命令选项和shell选项。

另一个非常有用的庆典设置是histappend它允许多个shell写入相同的历史文件。只要记住庆典只在会话结束时将来自会话的命令添加到其历史文件中。

测试一个设置并决定喜欢它之后,将所需的命令添加到.bashrc文件中,以便在每次登录时都启用该设置。你可能只需要删除一些评论标记:

#附加到历史文件,不要覆盖它#shopt -s histappend<==

查看可用的设置的完整列表禁用了javascript只要键入“shopt”即可。在下面的命令中,输出被传递给命令只凝结为这个职位的输出。

$禁用了javascript |柱autocd关闭globstar关assoc_expand_once关gnu_errfmt关cdable_vars关histappend关闭cdspell上histreedit关闭checkhash关histverify关checkjobs关hostcomplete关闭checkwinsize上huponexit关闭cmdhist上inherit_errexit关闭compat31关闭interactive_comments上compat32关闭lastpipe关compat40关lithist关compat41关localvar_inherit关闭compat42关localvar_unset关compat43关闭login_shell上compat44关闭mailwarn关上no_empty_cmd_completion关direxpand关nocaseglob complete_fullquote关dirspell关nocasematch关dotglob关闭了nullglob关execfail关闭progcomp上extglob上restricted_shell上shift_verbose开关extdebug progcomp_alias expand_aliases关闭promptvars关extquote关failglob断源路径上xpg_echo force_fignore关闭globasciiranges上

上述名单包括53个设置。如果你想只显示已启用这些设置,使用shopt - s命令:

$禁用了javascript -s |柱cdspell上force_fignore上checkwinsize上globasciiranges上cmdhist上interactive_comments上complete_fullquote上login_shell上expand_aliases上progcomp上extglob上promptvars上extquote上源路径上

要查看单个设置的状态,可以在设置名称后面输入“shopt”。例如:

$ shopt cdspell cdspell on

该选项禁用了javascript内置的包括:

  • -s使(设定)的设定
  • -u禁用(取消设置)设置
  • q抑制正常输出
  • -o限制的值optname的定义-o与设置选项

-q选项可能有点难以理解,直到您尝试它。在下面的第二个示例中,我们在尝试确定是否cdspell设置时,却看不到任何确认,因为-q抑制输出。我们可以,但是,仍然确定设置是否被显示在返回代码启用。如果设定点已禁用,则回声$?命令会返回a1

$ shopt cdspell $ shopt -q cdspell $ echo $?0

的列表禁用了javascript设置(又名选项),并解释它们如何影响庆典的行为,看看庆典手册页并向下滚动到这样开始的部分:

shopt选项的列表是:assoc_expand_once如果设置,shell在算术表达式求值期间抑制as‐社交数组下标的多重求值,同时执行可执行变量赋值的内建函数,以及执行执行数组解引用的内建函数。如果设置为自动命令,则执行一个命令名,即目录名,就像执行cd com‐mand命令的参数一样。此选项仅供交互式shell使用。如果设置了cdable_vars,则假设cd内置命令的一个非目录的参数是一个变量的名称,该变量的值是要更改的目录。如果设置此选项,cd命令中目录组件拼写的小错误将被纠正。检查的错误是字符调换、字符丢失和字符多了一个。如果发现一个更正,更正后的文件名被打印,com‐mand继续进行。此选项仅供交互式shell使用。

既然这篇文章提到了histappend设置,这里是手册页的解释:

如果设置了histappend,那么历史记录列表将被附加到文件中,而不是覆盖该文件时,该文件是由HISTFILE变量的值命名的。

禁用了javascript内建可能不会成为你最喜欢的Linux技巧之一,但一些方法,它可以让你调整的方式庆典的行为可能会取悦你。

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对那些顶级心态的话题发表评论。
相关:

版权©2020足球竞彩网下载

工资调查:结果在