以下脚本运行良好。
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
这稍微慢一些,但更容易扩展到多个目录