シェルスクリプトの初心者です。私はサイズn
の配列を作成しようとしています。実行時にn
がユーザによって入力されます。シェルスクリプトでユーザー入力を使用して動的配列を埋め込む
while [ $i -lt $n ]
do
echo For person $i enter the name?
read io
eval Name[$index]= $io
done
これを実行しようとすると、ループがユーザーからの入力を取得するたびに値が上書きされます。
例:人1が - トム、人2が - ジョンの場合。次に、スクリプトの最後にすべての人物の名前を表示しようとすると、person 1の名前がperson n番目の名前で上書きされます(つまり、すべての名前は配列ではなく1つの変数に格納されます)。
どこか間違っていると誰かに教えてもらえますか?
あなたは '$のindex'と' eval'を取り除くことができます。単に 'eval Name [$ index] = $ io'を' Name =( "$ {Name [@]}" "$ io") 'に置き換えてください。 – alvits