質問: Arch Linuxの`/etc/profile`内に以下のような記述があるのですが、`${POSIXLY_CORRECT+x}`という部分の意味が分かりません。 環境変数名に`+x`をつけるとどのような効果があるのでしょうか? `man bash`の`Parameter Expansion`の部分を探したのですが、`${parameter:+word}`などの説明はあっても`${parameter+word}`という記法の説明は見つかりませんでした。 ``` # Source global bash config if test "$PS1" && test "$BASH" && test -z ${POSIXLY_CORRECT+x} && test -r /etc/bash.bashrc; then . /etc/bash.bashrc fi ```
回答: `man bash`にありますよ。 ``` 部 分文字列展開以外の場合、以下の形式で、 bash はパラメータが設定されて いるか、空ではないかを調べます。コロンを省略した場合には設定されてい る かどうかのみを調べます。 ``` つまり、`${変数名+x}`のときは、変数がセットされていないときに空に、セットされていれば`x`になります。 `${変数名:+x}`のときは、変数がセットされていないか、空がセットされていれば空に、どちらでもなければ`x`になります。