Я использую сценарий Bash ниже для обновления программного обеспечения на OSX и перезагрузки при необходимости.Сценарий Bash не записывает полный вывод
Как ни странно, ни вывод запуска сценария, ни журнал не содержат часть вывода, если не требуется обновление программного обеспечения.
Например, если я бегу следующий на машине, которая не нуждается в никаких обновлений, я буду видеть:
% softwareupdate -i -a
Software Update Tool
Copyright 2002-2012 Apple Inc.
Finding available software
No updates are available.
Последняя строка «Обновления не доступны» является то, что не получает записывается в мой журнал файл следующего сценария:
#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH
SWLOG=/var/log/swupdate.log
(
echo "################ SoftwareUpdate Script Beginning at $(date) ################"
echo "Script Name: $(basename -- "$0") "
softwareupdate -l | grep -i "restart"
if [[ $? -eq 0 ]] #reboot will be needed
then
echo "Software update requiring reboot is needed"
echo "Starting..."
softwareupdate -i -a
echo "################ Rebooting at $(date) ################"
reboot
else
echo "No reboot needed. Updates will be applied if needed..."
softwareupdate -i -a
echo "################ SoftwareUpdate Script Ending at $(date) ################"
echo
fi
exit 0
) | tee -a $SWLOG
Вместо этого, журнал содержит:
################ SoftwareUpdate Script Beginning at Sat May 21 19:37:44 PDT 2016 ################
Script Name: swupdate.sh
No reboot needed. Updates will be applied if needed...
Software Update Tool
Copyright 2002-2012 Apple Inc.
Finding available software
################ SoftwareUpdate Script Ending at Sat May 21 19:38:33 PDT 2016 ################
И опускает «Обновлений нет».
Любые идеи, предложения, почему это может произойти? Я хотел бы записать эту важную деталь.
Заранее спасибо, Dan
Возможно, это потому, что в скрипте нет строки «Нет обновлений»? –
@ н.м. Объясните пожалуйста – Dan
Я думаю, что «Нет обновлений доступны», возможно, были отправлены на стандартную ошибку. Вы пробовали 'softwareupdate -i -a 2> & 1' –