以下のように、変数の存在をbashでチェックしたいと思います。bashで変数のエイリアスを作成できますか?
if [ -z "$VARIABLE" ]; then
echo "VARIABLE does not exist"
else
echo "VARIABLE exist"
fi
正常に動作します。しかし、次のステップでは、変数名を生成し、変数名を持つ変数が存在するかどうかを次のようにチェックします。
function generate_var_name() { echo "aaa" }
VARIABLE_NAME=$(generate_var_name)
if [ -z ${$VARIABLE_NAME:-""} ]; then # This give error message below.
echo "VARIABLE does not exist"
else
echo "VARIABLE exist"
fi
ただし、動作しませんでした。そのエラーメッセージが
再び${"$INCLUD_GUARD_NAME":-""}: bad substitution
だった、私がやりたいことは (1)変数名、nameAを生成し、別の変数、VARBにそれを保管しています。 (2)変数varBを使用して、変数nameAを持つ変数が存在するかどうかを確認します。
解決策や提案をお持ちの方は教えてください。
ありがとうございました。
'変数が存在するかどうかをテストしません-z'を。その展開が空文字列かどうかをテストします。変数がまったく設定されているかどうかをテストするには '[-v VARIABLE]'を使います。 – chepner