2015-03-09 4 views
-3

Этот файл написан в bash. Когда я запускаю его я получаю эту ошибку:Ошибка синтаксиса Bash около неожиданного токена `done '

./q: line 7: syntax error near unexpected token `done' 
./q: line 7: `done '**strong text** 

Код:

nohup echo ELMAYET > /dev/null 2> /dev/null && 
if curl -m5 -s --insecure "$1/test/final" | grep "phpshell" > /dev/null; 
then 
echo "$1/test/final.php" | tee -a final.txt; 
fi & 

done 
+0

Что это делает? К какой формулировке относится это? –

+1

Как насчет других 20 линий? –

+0

Это вряд ли MCVE, но я предполагаю, что вам нужно удалить это '&' как раз перед 'done' –

ответ

1

Предполагая, что нет ничего другого, значимости в сценарии, вам нужно просто удалить done.

done - ключевое слово оболочки. Используется только , чтобы отметить конец while, for, или until. Если это не указывает конец цикла, это синтаксическая ошибка.

Из любопытства, что вы думаетеdone был, и почему вы добавили его в сценарий? Если вы предположили, что вам нужен done, чтобы отметить конец скрипта, это ваша ошибка. Конец сценария не должен быть отмечен каким-либо особым образом; это только конец файла.

+0

Хорошо, что хорошо для права , но я думаю, код должен дать мне результат в файле final.txt , но результата нет после удаления done –

+0

@MohammedNagy: Невозможно рассказать без дополнительной информации. Сценарий будет добавлен к 'final.txt', только если' curl ... | Команда grep ... 'преуспевает. Невозможно догадаться, может ли он или почему он преуспел или потерпит неудачу без * по крайней мере * зная значение '$ 1'. (И BTW, я понятия не имею, для чего эта первая строка «nohup echo ...» для.) –

+0

ok Я собираюсь отправить u massege по электронной почте ur, чтобы дать вам дополнительную информацию. –

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