Следующий сценарий работает нормально.
for i in `cat /app/scripts/symantec_scripts/list`
do ssh root@$i "uname -n
if [ -s /app/Symantec/virusdefs/definfo.dat ]; then
cat /app/Symantec/virusdefs/definfo.dat
else
cat /opt/Symantec/virusdefs/definfo.dat
fi
echo `service rtvscand status`
echo ....................................................................." ; done | tee /tmp/symantec_info.`date +"%m%d%y"`
У нас есть несколько новых серверов с расположением файлов в /usr/symantec/virusdefs/definfo.dat
.
Как я могу добавить в скрипт указанную выше строку? Я ценю любую помощь.
Логическим расширением вашего теста if было бы использование elif
(иначе, если)
if [ -s /app/Symantec/virusdefs/definfo.dat ]; then
cat /app/Symantec/virusdefs/definfo.dat
elif [ -s /usr/symantec/virusdefs/definfo.dat]; then
cat /usr/symantec/virusdefs/definfo.dat
else
cat /opt/Symantec/virusdefs/definfo.dat
fi
Возможно, вы захотите провести рефакторинг как loop
for dir in /app/Symantec /usr/symantec /opt/Symantec
do
if [ -s $dir/virusdefs/definfo.dat ]
then
cat $dir/virusdefs/definfo.dat
fi
done
Это немного медленнее, но упрощает расширение на несколько каталогов
: ...
elif [ -s 'the other file' ]; then
: ...
fi
Синтаксис задокументирован в bash (1).