値を持つ変数がある場合、パラメーターの値を取得する際に問題があります。つまり、次のとおりです。
例:
./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?
これも試してください:
value=5 #
echo "$value" # 5
echo ${@:$value:1} # give you 1 arg starting from $value in the arg list
その変数を逆参照する必要があります
value=5
echo "$value" # 5
echo "${!value}" # will give you $5 or in your example 16
バシズムは本質的に移植性がありません。${!...} に依存して式を評価すると、スクリプトは bash でのみ実行されます。これは問題にならないかもしれませんが、スクリプトの作成者が移植性の欠如を喜んで認識していない場合は問題になります。この種のことは、バシズムに頼らずに行うのは簡単です。文字列を評価したい場合は、eval を使用します。
eval echo \$$value