“IGNOREEOF = n”变量和“ignoreeof = n”单词用法之间的区别?

“IGNOREEOF = n”变量和“ignoreeof = n”单词用法之间的区别?

当我使用ignoreeof内置函数时set,我意识到“IGNOREEOF = n”变量和“ignoreeof = n”单词可以用于限制。例如;

└─$ bash
└─$ set -o ignoreeof
└─$ IGNOREEOF=2
└─$
Use "exit" to leave the shell.
└─$
Use "exit" to leave the shell.
└─$
exit
└─$ bash
└─$ set -o ignoreeof
└─$ ignoreeof=2
└─$
Use "exit" to leave the shell.
└─$
Use "exit" to leave the shell.
└─$
exit

我知道 ”忽略EOF=n“是可变的,但我不知道是什么”忽略=n“。我被看着setenv输出,”忽略EOF“有但是”忽略“ 不是。

答案1

手册页提到了set -o ignoreeof这一点:

效果就像执行了 shell 命令 'IGNOREEOF=10'

实际上,这很字面意思:

$ echo $IGNOREEOF

$ set -o ignoreeof
$ echo $IGNOREEOF
10

做相反的事情,set +o ignoreeof取消设置IGNOREEOF,并且SHELLOPTS似乎包含ignoreeof何时IGNOREEOF设置(无论它是通过分配给它还是设置set -o ignoreeof)。 (我用 Bash 4.4 进行了测试。)

小写变量ignoreeof可能没有什么特别的作用。

尽管很奇怪,小写变量ignoreeof似乎是某种未记录的与大写变量等效的变量。因此,更改任一更改都会更改所需的 EOF 计数,我想这就是您在第二个示例中遇到的情况。

根据维护者的说法, 小写的

存在只是为了向后兼容;它已被弃用并且已经存在多年了

但总的来说,set -o标志和变量是不同的东西。

相关内容