アプリ版:「スタンプのみでお礼する」機能のリリースについて

bashのパラメータ展開で

${parameter:-word} と ${parameter:=word}

の違いが何なのかよく分らないのですが、何が違うのでしょうか?

http://www.linux.or.jp/JM/html/GNU_bash/man1/bas …

A 回答 (1件)

 :-の方は、parameterの値が変わりません。

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

% echo ${SAMURAI:=LAST}
LAST
% echo ${DORA:-YAKI}
YAKI
% echo $SAMURAI
LAST ←さっきのでSAMURAIにLASTが代入された
% echo $DORA
   ←さっきのでDORAにYAKIが代入されていない
%
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/01/04 22:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!