もし! とはどういう意味ですか? shopt –oq posixとはどういう意味ですか?

もし! とはどういう意味ですか? shopt –oq posixとはどういう意味ですか?
If ! shopt –oq posix; then

この問題のすべてのページを検索しましたが、明確な説明が見つかりませんでした。誰でも私を助けることができますか?

答え1

If実際、ifこの行は、ifコマンドを! shopt -oq posixテストとして実行するステートメントを導入すると仮定します。

shoptシェルのユーティリティは、bash特定のシェルオプションを設定するために使用されるユーティリティです。このユーティリティは、特定のシェルオプションが設定されているかどうかをテストするためにも使用できます。これがif問題の説明では、このユーティリティの目的です。

この-oオプションは、指定されたオプションが有効なオプションの1つであることを期待しますset -o(参照help set)、bashこの-qオプションはユーティリティを静かにします。つまり、終了状態のみを生成し、出力は生成しません。ステートメント本文を実行するかどうかを決定するためにステートメントがshopt使用する終了ステータス。ifif

posixshell に shell オプションが設定されていることを確認しbash、設定されていない場合 (呼び出し結果が以前とshopt逆に解釈される)、問い合わせ!本文を実行するテストです。if

help shopt対話型bashセッションも参照してください。

これshoptは標準ユーティリティではなく、シェルが特別に提供する組み込みユーティリティですbash

関連情報