如何检查 bash shell 属性是否已设置?

如何检查 bash shell 属性是否已设置?

set -o posix将设置 bash shell 的 POSIX 属性。

我们如何检查某个属性是否已设置?

答案1

bash 中有两个选项列表。一为shopt,一为set

检查一个选项。

要打印 shopt 的特定选项(不更改它),请使用shopt -p name

$ shopt -p xpg_echo
shopt -u xpg_echo

对于set,使用:(shopt -po name是的,您可以使用shopt -op列表set)。

$  shopt -po xtrace
set +o xtrace

列出选项。

要列出 shopt 中的所有选项,请使用shopt(或可重用shopt -p)。
shopt -s可以shopt -u使用。

列出所有选项的方法set是使用set -o(相关set +o:)。
或者:shopt -o等于set -oshopt -op等于set +o

手动的

LESS=+/'^ *shopt \[' man bash

不带选项或使用 -p 选项时,将显示所有可设置选项的列表。如果使用 -s 或 -u 且不带 optname 参数,则显示分别限于已设置或未设置的选项。

LESS=+/'^ *set \[' man bash

如果 -o 没有提供选项名称,则打印当前选项的值。如果 +o 没有提供选项名称,则标准输出上会显示一系列重新创建当前选项设置的 set 命令。

例子

$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off

$  shopt -sp
shopt -s checkwinsize
shopt -s cmdhist
shopt -s expand_aliases
shopt -s extglob
shopt -s extquote
shopt -s force_fignore
shopt -s histappend
shopt -s histverify
shopt -s interactive_comments
shopt -s progcomp
shopt -s promptvars
shopt -s sourcepath

值得一提的是,shopt -op它实际上列出了set选项:

$ shopt -op
set +o allexport
set -o braceexpand
set -o emacs
set +o errexit
set +o errtrace
set +o functrace
set -o hashall
set -o histexpand
set -o history
set +o ignoreeof
set -o interactive-comments
set +o keyword
set -o monitor
set +o noclobber
set +o noexec
set +o noglob
set +o nolog
set +o notify
set +o nounset
set +o onecmd
set +o physical
set +o pipefail
set +o posix
set +o privileged
set +o verbose
set +o vi
set +o xtrace

答案2

使用类似的东西

if shopt -qo posix ; then

要取消设置该选项,请使用

set +o posix

请参阅man bashhelp set、 和help shopt了解更多详细信息。

相关内容