送信するためにファイルに入れようとしているデータベースからいくつかの数値を返すクエリがあります。しかし、いくつかの値はnullとして返され、そのような場合、いくつかの計算を「0」に置き換えてみました。この値を「0」に設定できる唯一のケースは、実際の値を持つ変数に対して同じことができることです。以下は私のコードと出力です。私は何が間違っていましたか? (Bash/Linuxの新機能です。)
I use these commands: and I get this output:
echo ${awb-$defaultbase} NULL
echo ${gachurn-$defaultbase} 2 -
echo ${awb+$defaultbase} 0
echo ${gachurn+$defaultbase} 0 -
echo ${awb:-$defaultbase} NULL
echo ${gachurn:-$defaultbase} 2 -
echo ${awb:+$defaultbase} 0
echo ${gachurn:+$defaultbase} 0 -
echo $awb NULL
echo $gachurn 2
最初の値は0で、2番目の値は2になりたいです。
ベストアンサー1
NULL
データベースから返される内容は4桁の文字列であり、これはシェルの「ヌル文字列」として解釈されません。
$awb
それが正しいことを確認しNULL
てゼロに置き換えるには、次の手順を実行します。
[ "$awb" = 'NULL' ] && awb=0
記事より少し短いです。
if [ "$awb" = 'NULL' ]; then
awb=0
fi
では、bash
次のように文字列置換を実行することもできます。Gマンが提案する:
awb=${awb/NULL/0}