Скрипт Array bash не работает

#bash

#bash

Вопрос:

 #!/bin/bash
ARRAYNAME=( 'time1' 'life' 'time2' )
echo ${ARRAYNAME[1]}
  

В приведенном выше коде, когда я запускаю свой скрипт как

 $ sh ex1.sh
  

выдает сообщение об ошибке:

 ex1.sh: 2: Syntax error: "(" unexpected
  

Почему это?

Комментарии:

1. Запускайте, bash ex1.sh когда вы хотите использовать bash функции (не найденные в оболочке POSIX).

Ответ №1:

sh в вашей системе нет bash.

Комментарии:

1. Точно. #!/bin/bash Говорится запустить скрипт с помощью /bin/bash , но, запустив его с sh ex1.sh , вы игнорируете это и запускаете его с помощью sh . Просто запустите его как ./ex1.sh . (И .sh суффикс на самом деле не нужен.)

Ответ №2:

В ваших строках «shebang» используется оболочка bash («/ bin / bash»), но вы, вероятно, вызываете другую оболочку («sh»), вызывающую другую оболочку для выполнения вашего сценария. Попробуйте это :

$ chmod 700 ex1.sh

Это сделает ваш скрипт исполняемым. Затем запустите его :

$ ./ex1.sh