如何撤消拼写错误“set -ovi”?

如何撤消拼写错误“set -ovi”?

我想执行set -o vi,但我却执行了set -ovi

现在,当我检查时,set -o我看到了额外奇怪的选项,例如:

$ set -o
set -o
...
update_terminal_cwd; 

结果,update_terminal_cwd;打印在每个命令上。

如何在不重新启动 shell 的情况下撤消拼写错误?

答案1

如果您set -ovi这样做了,请重复,因为set +ovi其中一个的效果将被另一个逆转。

您实际上所做的是激活详细选项,set -o v该选项也显示历史记录(如果设置)。

最重要的值集由 打印echo "$-",通常仅himBH在交互式 shell 中。

set -o较长的值列表由或打印set +o。前者将打印设置(打开)或未设置(关闭)值的人类可读描述。后者将打印一个几乎完整的列表,可以执行该列表以恢复set状态。

使用set -oset +olist 检查详细状态并使用以下命令之一取消设置:

set +o verbose
set +o v

是的,+意思是未设置(关闭),很奇怪,我明白。

答案2

set +v

(一般情况下,如果set -<char>打开某个选项,set +<char>则会将其关闭。)

答案3

或者通过类似的方法检查差异(可能是鲁莽的假设,选项不像环境变量那样传递):

set -o > now
bash -ic 'set -o' > default
diff default now

相关内容