2012-06-23 21 views
8

widzę, że jest to«zwykły»błąd, ale nie może znaleźć rozwiązanie w moim przypadku ...Running cron tworzy błędzie nieoczekiwany EOF podczas poszukiwania dopasowanie ``”

Running zadanie crontab z:

expr `date +%W` % 2 > /dev/null && curl https://mysite.com/myscript 

To powoduje błędy:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``' 
/bin/sh: -c: line 1: syntax error: unexpected end of file 

możesz mi pomóc jak ich uniknąć? Z góry bardzo dziękuję!

Odpowiedz

14

Musisz uciec z postaci %. man 5 crontab mówi:

Percent-signs (%) in the command, unless escaped with backslash (\), 
    will be changed into newline characters, and all data after the first % 
    will be sent to the command as standard input. 
+2

Ten mały kawałek wiedzy pomógł mi ogromnie. Nie mogłem pojąć, dlaczego 'date +% Y-% m-% d_% H-% M-% S' działało idealnie w skrypcie, ale nie w linii komend (daisy chained crontab). Dzięki, Daniel! – Vacilando

1

próby ucieczki % i nie używać odwrócone, pojedyncze apostrofy do encose date -polecenie. Czy ująć ją $():

expr $(date +\%W) % 2 > /dev/null && curl https://mysite.com/myscript 

LUB

expr $(date +\%W % 2) > /dev/null && curl https://mysite.com/myscript