我是shell腳本編程新手。我正在嘗試創建一個大小爲n
的數組,其中n
是用戶在運行時輸入的。用shell腳本填充用戶輸入的動態數組
while [ $i -lt $n ]
do
echo For person $i enter the name?
read io
eval Name[$index]= $io
done
當我嘗試這樣做時,每當循環獲取來自用戶的輸入時,值都被覆蓋。
例如:如果人1是 - 湯姆,如果人2是 - 約翰。然後,當我嘗試在腳本的最後打印所有人的名字時,人名1將被人名n覆蓋(這意味着,所有名字都存儲在一個單獨的變量中而不是數組中)。
有人能告訴我我哪裏錯了嗎?
你可以擺脫'$ index'和'eval'的。只需用'Name =(「$ {Name [@]}」「$ io」)'替換'eval Name [$ index] = $ io''。 – alvits