私は現在、stdinから入力を受け取り、さらに処理するために入力を1行ずつ配列にロードするスクリプトに取り組んでいます。配列名を直接設定すると配列は正常に動作しますが、変数を配列名として使用しようとすると配列部分が正しく動作しません。コード自体は次のとおりです。
input=$(</dev/stdin)
# back up the field separator for later
OLDIFS=$IFS
# set the field separator to newline
IFS=$'\n'
# populate an array from that variable, as delimited by the IFS
lines=($input)
これは私が配列名を変数として設定するために試したものです
arrayname="something"
eval $arrayname=($input)
しかし、残念ながら、これを実行しようとすると、次のエラーが発生します。
./f.sh: line 53: syntax error near unexpected token `('
./f.sh: line 53: ` eval $arrayname=($input)'
このすべてを言ったので、私は誰かがこれを正しく機能させるために私が何ができるか知っているだろうかと思っていましたか?ありがとう!