在 bash 中,set
用于设置或取消设置某些 shell 选项。
选项-o option-name
和+o option-name
用于设置和取消设置一些 shell 选项。
-o
除或+o
of 之外的其他选项set
也可用于设置或取消设置某些 shell 选项。
set -o
由另一个选项设置/取消设置的 shell 属性/选项之间有什么区别set
?
set -o
与使用 和以外的其他选项设置或取消设置的set +o
shell 选项相比,通过 和 设置或取消设置的shell 选项有什么特别之处?set
-o
+o
答案1
现有的单字母选项与其多字母助记词没有区别;例如,set -e
和set -o errexit
是相同的)。
我怀疑这两种形式存在的原因是 shell 根本就用完了单字母标志来表示所需的选项范围。-o
本质上提供了无限数量的选项(仅受可以容忍的选项名称长度的限制)。为了一致性和在自记录代码中使用,预先存在的标志也被赋予了选项名称。没有相应单字母标志的选项名称只是较新的。