0

値を持つ変数がある場合、パラメーターの値を取得する際に問題があります。つまり、次のとおりです。

例:

./script 12 13 14 15 16

value=5
echo $value #now I see 5
$"$value" #now I want to get 16 but I don't know how to do it?
4

4 に答える 4

4

間接使用:

echo "${!value}"

値 16 に引用符は必要ありませんが、変数に特殊文字が含まれている場合に使用する必要があります。

于 2012-05-06T19:52:13.780 に答える
1

これも試してください:

value=5              #
echo "$value"        # 5 
echo ${@:$value:1}   # give you 1 arg starting from $value in the arg list     
于 2012-05-06T20:03:13.517 に答える
0

その変数を逆参照する必要があります

value=5
echo "$value"      # 5
echo "${!value}"   # will give you $5 or in your example 16
于 2012-05-06T19:52:21.673 に答える
0

バシズムは本質的に移植性がありません。${!...} に依存して式を評価すると、スクリプトは bash でのみ実行されます。これは問題にならないかもしれませんが、スクリプトの作成者が移植性の欠如を喜んで認識していない場合は問題になります。この種のことは、バシズムに頼らずに行うのは簡単です。文字列を評価したい場合は、eval を使用します。

eval echo \$$value
于 2012-05-06T20:50:33.063 に答える