Странный вывод объявляет и выстраивает

Я пытаюсь произвести значения элемента массива, но я становлюсь странным вывод. Взгляните на него и помогите мне решить его.Спасибо.

n=2
declare -a myarray[$n]
myarray[0]=hey
myarray[1]=hello
myarray[2]=bye
for i in ${myarray[@]}
do
        echo $i
done

Вывод:

robin@robin-VirtualBox:~/lx$ sh array.sh
array.sh: 2: array.sh: declare: not found
array.sh: 3: array.sh: myarray[0]=hey: not found
array.sh: 4: array.sh: myarray[1]=hello: not found
array.sh: 5: array.sh: myarray[2]=bye: not found
array.sh: 6: array.sh: Bad substitution
1
задан 27 April 2014 в 07:00

2 ответа

declare , удар окружает встроенный, и не определяется в оболочка sh.

Так, Вы должны для выполнения сценария с помощью следующей команды:

bash array.sh

Или добавляют, следующий хижина строка в начале Вашего сценария:

#!/bin/bash

Быть уверенным, что Ваш сценарий exectutable:

 chmod +x array.sh

И выполненный это с помощью следующей команды:

./array.sh
0
ответ дан 27 April 2014 в 07:00

Ваш сценарий корректен, но тип:

./array.sh

вместо sh array.sh

различие между ./ и sh объяснено здесь .

0
ответ дан 27 April 2014 в 07:00

Другие вопросы по тегам:

Похожие вопросы: