2016-01-12 6 views
0

У меня есть очень простой файл, «retrieve4.sh»Синтаксическая ошибка: конец файла неожиданном (ожидается «делать»)

Вот полный код:

while [ 1 ] 
do 
nohup php retrieve4.php 1 > /dev/null 2>&1 & 
nohup php retrieve4.php 2 > /dev/null 2>&1 & 
done 

я получаю ошибку

Syntax error: end of file unexpected (expecting "do")

Куда я иду не так?

+0

Вы хотите бесконечную петлю? –

+0

Этот сценарий выглядит опасным. Он разворачивает столько программ php, сколько может, пока не закончится процесс. – Jens

+0

Поскольку сообщение об ошибке не является 'command not found: 1', и вся формулировка не похожа на сообщение об ошибке bourne/bash, у вас либо есть команда с именем * 1 * в вашем пути, либо сообщение об ошибке не появляется из фрагмента кода, который вы опубликовали. Думаю, вы разместили только отрывок всего кода. Я думаю, вы также не опубликовали полное сообщение об ошибке; по крайней мере bash также печатает номер строки (и имя скрипта). В любом случае, пожалуйста, давайте также знать, какую оболочку вы используете (и какую версию). – user1934428

ответ

0

Если это должна быть петля Бесконечные попробовать

while [ 1 = 1 ] 
do 
nohup php retrieve4.php 1 > /dev/null 2>&1 & 
nohup php retrieve4.php 2 > /dev/null 2>&1 & 
done 

РЕДАКТИРОВАНИЕ

while [ 1 ] 
do 
echo 'test' 
done 

Это работает отлично на моей установке. Поэтому я бы ожидать, что ваш метод запуска скрипта неправильно

Вы также можете попробовать что-то вроде этого:

while true ; do php my_script.php ; done > /dev/null 
+0

Это просто не работает. Я продолжаю получать ту же ошибку. – kingneil

+0

как вы пытаетесь запустить свой код? –

+0

sh retrieve4.sh – kingneil

0

Попробуйте

while true ; do php retrieve4.php ; done > /dev/null 

В соответствии с выше комментарий, вы упомянули " Я редактирую его на Windows, а на сервере Linux », может возникнуть проблема с возвратной каретой.

Это однострочное решение работает для меня.