私の問題:
#!/bin/bash
function testFunc(){
echo "param #1 is :" $1
echo "param #2 is :" $2
}
param1="param1"
param2="param2"
testFunc $param1 $param2
このようにして、出力は次のようになります。
param #1 is : param1
param #2 is : param2
しかし、param1 を空の文字列に設定すると:
param1=""
出力は次のようになります。
param #1 is : param2
param #2 is :
問題は、最初のパラメーターが空の場合、宣言されていないため、実際には関数パラメーターとして渡されないことだと思います。
それが問題である場合、bashで変数「空の文字列」を宣言する方法はありますか、または期待される動作を得るための回避策はありますか?
注: 次のように関数を呼び出すと、期待どおりに動作します。
testFunct "" $param2
しかし、私はコードをきれいに保ちたいと思っています。
アップデート:
-u
最近、バインドされていない変数が使用されようとしている場合にエラーを発生させるフラグを発見しました。
$ bash -u test.sh
param #1 is : param1
test.sh: line 5: $2: unbound variable