• ベストアンサー

${parameter:-word} と ${parameter:=word} の違い

bashのパラメータ展開で ${parameter:-word} と ${parameter:=word} の違いが何なのかよく分らないのですが、何が違うのでしょうか? http://www.linux.or.jp/JM/html/GNU_bash/man1/bash.1.html

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 :-の方は、parameterの値が変わりません。:=は変わります。どちらもparameterに既に値が入っている場合は何も起こりません。  別の言い方をすると、:=の方はこの後bashが(子プロセスとして)起動するプロセスの環境変数にも$parameterがwordになりますし、:-はなりません。:=は何らかのプログラムを起動するスクリプト内で空っぽならデフォルト値を設定するというような用途に使用します。  以下、bashですけど$が出てきまくると紛らわしいのでプロンプトを%とします。 % echo ${SAMURAI:=LAST} LAST % echo ${DORA:-YAKI} YAKI % echo $SAMURAI LAST ←さっきのでSAMURAIにLASTが代入された % echo $DORA    ←さっきのでDORAにYAKIが代入されていない %

template_i
質問者

お礼

さっそくご回答いただきまして、ありがとうございます。 違いが分りました! どうもありがとうございました!

関連するQ&A