Добавить еще одно условие if

Следующий сценарий работает нормально.

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 .

Как я могу добавить в скрипт указанную выше строку? Я ценю любую помощь.

-1
28.06.2016, 01:21
2 ответа

Логическим расширением вашего теста 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

Это немного медленнее, но упрощает расширение на несколько каталогов

1
28.01.2020, 05:08
: ...
elif [ -s 'the other file' ]; then
   : ...
fi

Синтаксис задокументирован в bash (1).

1
28.01.2020, 05:08

Теги

Похожие вопросы