2013-08-14 2 views
1

Это фрагмент кода. Здесь я видя плохо размещенными() ошибка 'sОшибка Badlyposed() со следующим сценарием оболочки

#!/Bin/ш #!/USR/бен/Perl -w

# array declaration 
arr= (one two three) # seeing error here 

# for loop 
for ((i=0;i<4;i++)) 
do 
    echo "\n $i : ${a[i]}" 
done 
+0

Является ли ваш! # Обращение правильным? –

+1

yes ... right – user2185454

ответ

1
arr= (one two three) 

Позволяет перерыв вниз, что это делает.

arr= 

Эта часть присваивает $arr пустое значение (временно, так как она предшествует команде).

(one two three) 

Эта часть работает one в субоболочке с аргументами two и three с ранее назначенным значением $arr.

Возможно, вы хотели бы присвоить три значения массиву в $arr вместо этого?

+0

yes ... Я хотел присвоить три значения массиву arr .. – user2185454

2

Это небольшая ошибка.

arr= (one two three)

должен был

arr=(one two three)

Также вы не можете использовать \n в echo. Используйте printf, если вы хотите использовать \n.

И, исправляя остальные ошибки, код выглядит следующим образом.

# array declaration 
arr=(one two three) 

# for loop 
for ((i=0;i<3;i++)) 
do 
    printf "\n $((i+1)) : ${arr[i]}" 
done 
echo "" 
Смежные вопросы