#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