- ベストアンサー
${parameter:-word} と ${parameter:=word} の違い
bashのパラメータ展開で ${parameter:-word} と ${parameter:=word} の違いが何なのかよく分らないのですが、何が違うのでしょうか? http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
:-の方は、parameterの値が変わりません。:=は変わります。どちらもparameterに既に値が入っている場合は何も起こりません。 別の言い方をすると、:=の方はこの後bashが(子プロセスとして)起動するプロセスの環境変数にも$parameterがwordになりますし、:-はなりません。:=は何らかのプログラムを起動するスクリプト内で空っぽならデフォルト値を設定するというような用途に使用します。 以下、bashですけど$が出てきまくると紛らわしいのでプロンプトを%とします。 % echo ${SAMURAI:=LAST} LAST % echo ${DORA:-YAKI} YAKI % echo $SAMURAI LAST ←さっきのでSAMURAIにLASTが代入された % echo $DORA ←さっきのでDORAにYAKIが代入されていない %
お礼
さっそくご回答いただきまして、ありがとうございます。 違いが分りました! どうもありがとうございました!