2016-11-23 3 views
0

bashで次のような動作をしたいのですが、これは1行で可能ですが、正確な構文がわからず(ドキュメント内で見つけることができませんでした)という印象があります。変数が定義されていてヌルでない場合にのみ、文字列をbashに追加する方法はありますか?

FOO=somename 
BAR=123 

BARが定義されてか、空でない場合、最終的な結果はちょうどsomenameする必要があります。 BARに値がある場合は、最終結果はsomename-123

となります。現在の例では、BARが定義されていない場合でもダッシュが追加されています。

エコー "$ {FOO} - $ {BAR}" man bashから

答えて

4

を:

${parameter:+word} 
      Use Alternate Value. If parameter is null or unset, nothing is 
      substituted, otherwise the expansion of word is substituted. 

例:

foo="somename" 
bar="123" 
echo "${foo}${bar:+-$bar}" 

これはsomename-123を印刷します。 bar=""を設定すると、somenameが印刷されます。

関連する問題