![“IGNOREEOF = n”变量和“ignoreeof = n”单词用法之间的区别?](https://linux22.com/image/189884/%E2%80%9CIGNOREEOF%20%3D%20n%E2%80%9D%E5%8F%98%E9%87%8F%E5%92%8C%E2%80%9Cignoreeof%20%3D%20n%E2%80%9D%E5%8D%95%E8%AF%8D%E7%94%A8%E6%B3%95%E4%B9%8B%E9%97%B4%E7%9A%84%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
当我使用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“。我被看着set
并env
输出,”忽略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
标志和变量是不同的东西。