2015-03-18 6 views
0

Я изучаю shell sripting и застреваю. вот код #/бен/БашНазначить значение массиву в bash

a=0 
myarray[$a]=$1 
echo $myarray[$a] 
((a+=1)) 
echo $a 

Выход:

#./varcheck sa 
sa[0] 
1 

кто-нибудь пожалуйста, скажите мне, почему название массива становится заменен с аргументом, что я хочу, чтобы присвоить 0-й индекс массив.

+0

http://mywiki.wooledge.org/BashGuide/Arrays#Using_Arrays-1 –

ответ

4
echo "${myarray[$a]}" 

как вы вывести элемент массива. Альтернативно

echo "${myarray[a]}" 

поскольку индекс гарантированно является арифметическим контекстом, если вы не используете ассоциативные массивы. Таким образом, вы действительно можете удалить строку:

a=0 
myarray[a]=$1 
echo "${myarray[a++]}" # Get element at zeroth index 
echo $a # Get post-incremented expansion of a. 
Смежные вопросы