1. ホーム
  2. bash

[解決済み] ": ${foo=value}" におけるコロン演算子の説明

2023-06-30 14:01:53

質問

bashのコロン演算子で、以下のような動作をすることは理解しています。 a null で使われることも知っていますし パラメータ展開 で使われることも、他の方法で使われることも知っていますが、誰かこれを説明してください。

: ${SOMETHING='value'}

実験によると、これは環境変数 $SOMETHING'value' に変更しましたが、なぜでしょうか?

Just because it does"は有効な答えですが、それならそのためのドキュメントを紹介してください(見つけられそうにないのですが)またはこの使い方の適切な名前があれば便利です。私はより啓発的な説明があることを期待しています。

どのように解決するのですか?

式は ${SOMETHING='value'} は、SOMETHING を value に設定します。これは多くの場面で役に立つ演算子です。しかし、これは代入された値も返すので、もし単に

${SOMETHING='value'}

を実行すると、シェルは次のコマンドを実行しようとします。 value . 少なくとも "value: command not found" というメッセージを投げるでしょう。

これを回避するために、省略可能な : を使うことができます。これは引数を評価した後、それを実行するのではなく、捨ててしまいます。これは、文書化された はこちら .