Bash:运行`set -i`的效果?

Sig*_*uza 2 bash

今天,我读通过的文件set,当我意识到我的标志变量($-)包含(无证帮助页面上的标志help set)和GNU.orgi
一段时间后,我设法找到了这个页面该页面i表示交互式.
当然,我随后尝试的第一件事就是将其关闭。
运行后set +i$-不再包含i,但除此之外,一切显然仍然像往常一样。
同样,set -i在运行时放入脚本文件也没有明显效果。

所以,我的问题是:除了修改变量之外,将set -i/set +i放入脚本或在命令行上运行它实际上是否有任何影响$-

ric*_*ici 5

显然,在shell 初始化后在命令行上使用set -i或的唯一结果set +i是更改$-. -i只有在调用bash以创建 shell时才能有意义地使用该选项,在这种情况下,它将强制 shell 交互。

对 bash 源代码的快速检查表明,执行期间的交互式检查引用了全局变量interactive,该变量在初始化序列期间设置,然后未修改。仅set [+-]i$-使用forced_interactive全局。(interactive如果设置为 trueforced_interactive或如 中所述,则设置为 true man bash。)