私は次のことを実行するはずのシェル スクリプトを実行しようとしています:
このスクリプトは、OSX の softwareupdate プログラムを使用して、自動的にアップデートをチェックし、インストールします。また、すべてのアップデートを /Library/Management/update.log ファイルに記録します。
まず、ログインしているユーザーがいるかどうかを確認し、ログインしている場合は、そのユーザーをログ ファイルに記録して終了します。
ログインしているユーザーがいない場合は、コンピューターを更新し、情報をログに記録して再起動します。
このエラーが繰り返し発生します:
update.sh: line 9: syntax error near unexpected token `fi'
update.sh: line 9: `fi'
スクリプトは次のとおりです:
#!/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
何か案は?
答え1
で始まる行にはdate
行継続文字がありません。次のような文字に置き換えてください。
date >> /Library/Management/update.log && /usr/sbin/softwareupdate -aiv >> \
/Library/Management/update.log && /sbin/reboot