bash端末を開けました。 extglob オプションの値を変更する前に、このセッションでそのオプションが有効か無効かを確認したいと思います。どうすればいいですか?
答え1
速く走る:
$ shopt extglob
現在の状態が返されます。
$ shopt extglob
extglob on
$ shopt -u extglob
$ shopt extglob
extglob off
すべてのオプションを表示するには:
$ shopt
答え2
使用ショッピング-Q:
shopt -q extglob && echo enable || echo disable
-q
オプションは出力を削除しshopt
、オプションが設定されているかどうかを示すステータスを返します。
shopt
変数に表示されるオプションのみが報告され、これらのオプションは組み込みBASHOPTS
コマンドには影響しません。set
set
で有効またはに表示される可能性のあるオプションを確認するには、SHELLOPTS
以下を使用しますshopt -qo
。
$ bash --posix -c 'shopt -qo posix && echo enable || echo disable'
enable
答え3
Bashには2つのオプションのリストがあります。に一つshopt
、に一つset
。
このオプションはリストextglob
に属します。その値はまたはshopt
を使用して印刷できます。shopt extglob
shopt -p extglob
このオプションはそのリストnounset
に属します。set
その値はまたは
を使用して印刷できます。shopt -op nounset
shopt -o nounset
オプションを確認してください。
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 -o
shopt -op
set +o
手動
からLESS=+/'^ *shopt \[' man bash
:
オプションがない場合、または-pオプションを使用すると、設定可能なすべてのオプションのリストが表示されます。 optname引数なしで-sまたは-uを使用すると、表示はそれぞれ設定または設定解除されたオプションに制限されます。
から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
答え4
回答に追加上記、set
ロゴの場合
現在のフラグセットは$-にあります。
(ソース:bashヘルプ)
if [[ ${-%x*} != $- ]] ; then echo "Debug (xtrace) is on"; fi