私の問題:パス空の変数
#!/bin/bash
function testFunc(){
echo "param #1 is :" $1
echo "param #2 is :" $2
}
param1="param1"
param2="param2"
testFunc $param1 $param2
この方法で出力は次のとおりです。次に、出力を
param1=""
:
param #1 is : param1
param #2 is : param2
しかし、私は空の文字列へのparam1を設定するとき休暇:
param #1 is : param2
param #2 is :
私は、最初のパラメータが空で、そのパラメータが宣言されていないので、実際には関数パラメータとして渡されないという問題があると思います。
これが問題であれば、bashで変数 "空文字列"を宣言する方法がありますか、または予想される動作を得るための回避策がありますか?
注:
testFunct "" $param2
しかし、私はクリーンなコードを維持したい:私はこのような関数を呼び出す場合に予想されるとして、それは動作します。
UPDATE:
私は最近、結合していない変数の場合にエラーが発生します-uフラグが使用されようとしているを発見。
$ bash -u test.sh
param #1 is : param1
test.sh: line 5: $2: unbound variable
クリーンアップが正しく行われるべきではありません。 – chepner
クリーンで正しいソリューションを検索するのではなく、正しく混乱させる方がいいですか? – kupsef
コードが間違っている場合、クリーンであれば誰が気にしますか?パラメータの拡張子を引用符で囲まないことは、よりきれいに見えるので間違っています。 – chepner