空のパラメータをデフォルト値(「0」)に置き換える

空のパラメータをデフォルト値(「0」)に置き換える

送信するためにファイルに入れようとしているデータベースからいくつかの数値を返すクエリがあります。しかし、いくつかの値は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}

おすすめ記事