2016-05-03 2 views
0

Такая же проблема, как this OP, но должна быть отдельная причинаошибка «Ошибка синтаксиса:„(“неожиданный» при объявлении массивов в Баш

Следующий сценарий:.

#!/bin/sh 
arr=("cat" "dog" "bird") 

работы в интерактивном режиме (Debian) но терпит неудачу, когда вызываются кронтабом с:.

/bin/sh: 2: /path/zero_check.sh: Syntax error: "(" unexpected 

Я попытался с #!/bin/bash притоном, и объявить массив с declare -a arr=("cat" "dog" "bird"), никакого эффекта

Любая идея, почему?

+1

Как вы называете свой скрипт в кронтаб? – fedorqui

+1

Сообщение об ошибке является четким индикатором того, что Bash фактически не используется для выполнения сценария. –

+0

Я пробовал оба shebangs, но просто скопировал сценарий в другой точке ошибки. Ниже приведено решение ниже. – geotheory

ответ

1

Укажите свой интерпретатор явно в записи crontab. Используйте

bash /path/zero_check.sh 

вместо

/path/zero_check.sh 
+2

это не должно быть проблемой, если скрипт уже содержит заголовок '#!/Bin/bash'. – fedorqui

+0

Я думаю, что я просто скопировал рабочий сценарий в неправильном месте. Решение работает. – geotheory

+1

Если это ответ, тогда есть еще одна проблема в вашем скрипте, который вы игнорируете. :( – SaintHax

5

Проблема здесь состоит в том, что вы используете этот притон:

#!/bin/sh 

Принимая во внимание arrays что-то Bash специфичны, что оболочка не позволяет.

Итак, чтобы сделать его работу, изменить хижину вашего сценария Bash:

#!/bin/bash 

 Смежные вопросы

  • Нет связанных вопросов^_^