Я пытаюсь произвести значения элемента массива, но я становлюсь странным вывод. Взгляните на него и помогите мне решить его.Спасибо.
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
declare
, удар окружает встроенный, и не определяется в оболочка sh.
Так, Вы должны для выполнения сценария с помощью следующей команды:
bash array.sh
Или добавляют, следующий хижина строка в начале Вашего сценария:
#!/bin/bash
Быть уверенным, что Ваш сценарий exectutable:
chmod +x array.sh
И выполненный это с помощью следующей команды:
./array.sh
Ваш сценарий корректен, но тип:
./array.sh
вместо sh array.sh
различие между ./
и sh
объяснено здесь .