[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fehler in einer bash-Befehlszeile



Christian Bodenstedt schrieb:
On Fri, 12 Aug 2005 11:34:06 +0200
Erich Ludwig <elu.repp@freenet.de> wrote:


./nvram-wakeup -C /etc/nvram-wakeup.conf --directisa -s $(('date +%s'\ +10 * 60 )) --nowrite

-bash: 'date +%s' + 10 * 60:
syntax error: operand expected (error token is "'date +%s' + 10 * 60)


Mit $(( ... )) kann man in der bash mit ganzen Zahlen rechnen, Beispiel:

  echo $(( 3 + 5 * 2 ))

Mit $( ... ) oder ` ... ` (Backticks) erhält man die Ausgabe des
eingeschlossenen Befehls. ' ... ' (Hochkommata) werden zum quoten
benutzt, also um zu verhindern, dass Zeichen mit besonderer Bedeutung, wie
"*", "$" oder "`" aber auch normale Anführungszeichen, ausgewertet werden.
Beispiel:

  echo ' `date +%s` = "'`date +%s`'"'
  echo '$(date +%s) = "'$(date +%s)'"'

In deinem Script hast du also Hochkommata mit Backticks verwechselt. Um
solche Fehler zu vermeiden, sollte man statt den Backticks die $() Syntax
verwenden.

Weitere Infos findest du im "Bash programming intro HOWTO", an etlichen
Ecken im Internet oder umfassend in "man bash".

Abgesehen davon scheinst du mit obiger Kommandozeile den Rechner
anzuweisen, sich in Zehn Minuten wieder einzuschalten. Da kannst du die
Kiste auch gleich weiter laufen lassen. ;-)


Gruß,

Christian Bodenstedt




Hallo Christian!

Danke für Deine schnelle Antwort. Zu Deinem letzten Absatz möchte ich hinzufügen. daß es sich, wie in meiner 1. Mail angedeutet, um einen Test handelt. Das Ziel ist das selbsttätige Einschalten des Rechners für eine per Timer vorgegebene Aufnahme. Die 10 Minuten sind natürlich vorgegeben damit ich nicht zu lang auf das Versuchsergebnis warten muß.

Gruß Erich



Reply to: