添加另一个 if 条件

添加另一个 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

: ...
elif [ -s 'the other file' ]; then
   : ...
fi

语法记录在 bash(1) 中。

答案2

if 测试的逻辑扩展是使用elif(else if)

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

您可能想重构为循环

for dir in /app/Symantec /usr/symantec /opt/Symantec
do
  if [ -s $dir/virusdefs/definfo.dat ]
  then
    cat $dir/virusdefs/definfo.dat
  fi
done

这稍微慢一些,但更容易扩展到多个目录

相关内容