显然,在shell 初始化后在命令行上使用set -i或的唯一结果set +i是更改$-. -i只有在调用bash以创建 shell时才能有意义地使用该选项,在这种情况下,它将强制 shell 交互。
对 bash 源代码的快速检查表明,执行期间的交互式检查引用了全局变量interactive,该变量在初始化序列期间设置,然后未修改。仅set [+-]i并$-使用forced_interactive全局。(interactive如果设置为 trueforced_interactive或如 中所述,则设置为 true man bash。)