要素配列を操作し、いくつかの算術プロセスを生成して文字列シーケンスを動的に生成したいと思います。
for name in FIRST SECOND THIRD FOURTH FIFTH; do
$name = $(( $6 + 1 ))
$name = "${$name}q;d"
echo "${$name}"; printf "\n"
done
$6
等しい場合、予想される結果は次のとおりです0
。
1q;d
2q;d
3q;d
4q;d
5q;d
しかし、このエラーが発生しました。
reel_first_part.sh: line 18: FIRST: command not found
reel_first_part.sh: line 19: ${$name}q;d: bad substitution
reel_first_part.sh: line 18: FIRST: command not found
reel_first_part.sh: line 19: ${$name}q;d: bad substitution
reel_first_part.sh: line 18: FIRST: command not found
reel_first_part.sh: line 19: ${$name}q;d: bad substitution
簡単だと思います。私は次のようなことをしたときに働きました。
FIRST=$(( $6 + 1 ))
FIRST="${FIRST}q;d"
ベストアンサー1
別の変数に名前を保存している間に bash 変数を参照するには、次のようにします。
$ var1=hello
$ var2=var1
$ echo ${!var2}
hello
この例では、アクセス中の変数の名前がvar2に格納されています。その後、アクセスしたい変数の名前を含む変数を${!<varable name>}
使用してアクセスできます。<variable name>