たまに期間でループして、それらを足したいと言う時に、
a.xxx_1 + a.xxx_2 + a.xxx_3 ...
みたいなデータを作りたい時、_2以降の頭には+を付けたい、と言う形になります。
こういう時は、bash の変数で
${変数名:+デフォルト} → 値が定義済みの場合、デフォルトになる
という変なロジックを使うとよいです。
for mon in 1 2 3 ; do
GET_DATA+="${GET_DATA:++} xxx_${mon}"
done
といった感じ。
参考:
${変数名#パターン} → 前方一致でのマッチ部分削除(最短マッチ)
${変数名##パターン} → 前方一致でのマッチ部分削除(最長マッチ)
${変数名%パターン} → 後方一致でのマッチ部分削除(最短マッチ)
${変数名%%パターン} → 後方一致でのマッチ部分削除(最長マッチ)
${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ)
${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて)
${変数名:-デフォルト} → 値が未定義の場合、デフォルトになる
${変数名:+デフォルト} → 値が定義済みの場合、デフォルトになる
a.xxx_1 + a.xxx_2 + a.xxx_3 ...
みたいなデータを作りたい時、_2以降の頭には+を付けたい、と言う形になります。
こういう時は、bash の変数で
${変数名:+デフォルト} → 値が定義済みの場合、デフォルトになる
という変なロジックを使うとよいです。
for mon in 1 2 3 ; do
GET_DATA+="${GET_DATA:++} xxx_${mon}"
done
といった感じ。
参考:
${変数名#パターン} → 前方一致でのマッチ部分削除(最短マッチ)
${変数名##パターン} → 前方一致でのマッチ部分削除(最長マッチ)
${変数名%パターン} → 後方一致でのマッチ部分削除(最短マッチ)
${変数名%%パターン} → 後方一致でのマッチ部分削除(最長マッチ)
${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ)
${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて)
${変数名:-デフォルト} → 値が未定義の場合、デフォルトになる
${変数名:+デフォルト} → 値が定義済みの場合、デフォルトになる
コメント