Ich versuche, dieses Shell-Skript auszuführen, das Folgendes tun soll:
Dieses Skript verwendet das Softwareupdate-Programm unter OSX, um automatisch nach Updates zu suchen und diese zu installieren. Außerdem protokolliert es alle Updates in der Datei /Library/Management/update.log.
Es prüft zunächst, ob Benutzer angemeldet sind, und protokolliert ggf. den Benutzer in der Protokolldatei und beendet das Verfahren.
Wenn kein Benutzer angemeldet ist, wird der Computer aktualisiert, die Informationen protokolliert und ein Neustart durchgeführt.
Ich erhalte ständig diesen Fehler:
update.sh: line 9: syntax error near unexpected token `fi'
update.sh: line 9: `fi'
hier ist das Skript:
#!/bin/sh
users=$(users)
users1=$(echo "${#users}")
if [ $users1 -lt 1 ]
then
date >> /Library/Management/update.log && /usr/sbin/softwareupdate -aiv >>
/Library/Management/update.log && /sbin/reboot
else
date >> /Library/Management/update.log && echo "Logged in users: " >>
/Library/Management/update.log && echo $(users) >> /Library/Management/update.log
fi
Irgendwelche Ideen?
Antwort1
In den Zeilen, die mit beginnen, date
fehlen Zeilenfortsetzungszeichen. Ersetzen Sie diese etwa durch Folgendes:
date >> /Library/Management/update.log && /usr/sbin/softwareupdate -aiv >> \
/Library/Management/update.log && /sbin/reboot