CRON: /bin/sh: 1: Syntax error: Unterminated quoted string

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

CRON: /bin/sh: 1: Syntax error: Unterminated quoted string

Beitrag von lemak » 23.04.2013 17:19:56

Hallo,

ich habe folgenden Befehl als Cronjob der mit der Fehlermeldung: /bin/sh: 1: Syntax error: Unterminated quoted string scheitert.

Code: Alles auswählen

env DISPLAY=":0.0" notify-send -t 0 "Uhrzeit" "$(date +'Es ist %R Uhr')"
Wie setze diesen Befehl als Cronjob um?

Ich hatte bei der Suche nach einer Lösung auch schon ein: /bin/sh: 1: Syntax error: EOF in backquote substitution.

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: CRON: /bin/sh: 1: Syntax error: Unterminated quoted

Beitrag von Natureshadow » 23.04.2013 17:34:47

Moin,

"Es ist $(date +%R) Uhr."

-nik

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: CRON: /bin/sh: 1: Syntax error: Unterminated quoted stri

Beitrag von lemak » 23.04.2013 17:41:32

Nein, das gibt den Fehler: /bin/sh: 1: Syntax error: end of file unexpected (expecting ")")

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: CRON: /bin/sh: 1: Syntax error: Unterminated quoted

Beitrag von Natureshadow » 23.04.2013 19:02:41

Code: Alles auswählen

mksh -c 'env DISPLAY=":0.0" notify-send -t 0 "Uhrzeit" "Es ist $(date +%R) Uhr."'

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: CRON: /bin/sh: 1: Syntax error: Unterminated quoted stri

Beitrag von lemak » 23.04.2013 21:36:06

Es muss in der Crontab das % maskiert werden :arrow: \%.

Code: Alles auswählen

env DISPLAY=":0.0" notify-send -t 0 "Uhrzeit" "Es ist $(date +\%R) Uhr."
Warum?

Benutzeravatar
Meillo
Moderator
Beiträge: 9279
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: CRON: /bin/sh: 1: Syntax error: Unterminated quoted stri

Beitrag von Meillo » 23.04.2013 21:42:01

lemak hat geschrieben:Warum?
Deshalb: http://stackoverflow.com/questions/5277508/a-in-crontab
Use ed once in a while!

Benutzeravatar
Natureshadow
Beiträge: 2157
Registriert: 11.08.2007 22:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Radevormwald
Kontaktdaten:

Re: AW: CRON: /bin/sh: 1: Syntax error: Unterminated quoted

Beitrag von Natureshadow » 23.04.2013 21:47:46

Sogar in ''?

Oha... Ist ja kaputt.

lemak
Beiträge: 1213
Registriert: 09.11.2007 13:25:57
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: CRON: /bin/sh: 1: Syntax error: Unterminated quoted stri

Beitrag von lemak » 23.04.2013 22:02:13

Meillo hat geschrieben:
lemak hat geschrieben:Warum?
Deshalb: http://stackoverflow.com/questions/5277508/a-in-crontab
http://stackoverflow.com/questions/5277508/a-in-crontab hat geschrieben:From the manpage:

...
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.
...
Was ist der Sinn davon? Das sind auch nicht die Manpages von Cron!?

Dachte erst date macht das EOF und das habe ich nicht verstanden.
Natureshadow hat geschrieben:Sogar in ''?

Oha... Ist ja kaputt.
Ja...

Benutzeravatar
4A4B
Beiträge: 981
Registriert: 09.11.2011 11:19:55
Kontaktdaten:

Re: CRON: /bin/sh: 1: Syntax error: Unterminated quoted stri

Beitrag von 4A4B » 23.04.2013 23:30:46

lemak hat geschrieben:
http://stackoverflow.com/questions/5277508/a-in-crontab hat geschrieben:From the manpage:

...
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.
...
Was ist der Sinn davon? Das sind auch nicht die Manpages von Cron!?

Code: Alles auswählen

man 5 crontab

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: CRON: /bin/sh: 1: Syntax error: Unterminated quoted stri

Beitrag von Cae » 23.04.2013 23:31:30

Der zitierte Manpage-Auszug stammt aus crontab(5). Dort wird auch gleich ein Beispiel fuer die Verwendung des Prozentzeichens gegeben:

Code: Alles auswählen

       # run at 10 pm on weekdays, annoy Joe
       0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
Das Programm mail bekommt als stdin die Mail

Code: Alles auswählen

Joe,

Where are your kids?
vorgesetzt (was meiner Interpretation nach Joe dazu bewegen soll, endlich zu seiner Familie zu gehen). Und warum das in Quotes auch geht: cron kuemmert sich nicht um Dinge, die ihn nichts angehen. Es wird nach % und \% Ausschau gehalten, und der Rest literal uebergeben.

Gruss Cea
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten