1

したがって、ユーザーに入力を要求し、eval渡された変数名に入力の値を割り当てるために使用する関数があります。つまり

eval "$1='$input'"

しかし、$1空でない場合は値を再割り当てしたくないので、空かどうかを確認したいと思います。この関数は複数回呼び出されるため、呼び出すたびにチェックを行うのではなく、チェックを追加できれば最高です。

私は試した

if [[ ! -z "$1" ]]; then
    return
fi

しかし、変数$1は、渡した変数名に評価されます。

つまり_function_call VAR_A<- この呼び出しは、関数内で評価された場合に$1発生します。VAR_A

それで、変数の値を決定したり、関数で空かどうかを確認したりする方法はありますか? 関数は別の関数から呼び出されません。

4

1 に答える 1

2

BASH インダイレクションを使用して、名前が に格納されている変数を最初に取得します$1

var1=${!1}

# then
if [[ ! -z "$var1" ]]; then
   exit 1
fi
于 2013-10-21T19:17:48.713 に答える