通过“set -o”和通过“set”与另一个选项设置/取消设置的 shell 属性/选项之间有什么区别?

通过“set -o”和通过“set”与另一个选项设置/取消设置的 shell 属性/选项之间有什么区别?

在 bash 中,set用于设置或取消设置某些 shell 选项。

选项-o option-name+o option-name用于设置和取消设置一些 shell 选项。

-o除或+oof 之外的其他选项set也可用于设置或取消设置某些 shell 选项。

set -o由另一个选项设置/取消设置的 shell 属性/选项之间有什么区别set

set -o与使用 和以外的其他选项设置或取消设置的set +oshell 选项相比,通过 和 设置或取消设置的shell 选项有什么特别之处?set-o+o

答案1

现有的单字母选项与其多字母助记词没有区别;例如,set -eset -o errexit是相同的)。

我怀疑这两种形式存在的原因是 shell 根本就用完了单字母标志来表示所需的选项范围。-o本质上提供了无限数量的选项(仅受可以容忍的选项名称长度的限制)。为了一致性和在自记录代码中使用,预先存在的标志也被赋予了选项名称。没有相应单字母标志的选项名称只是较新的。

相关内容