次のスクリプトは正常に動作します。
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
少し遅いですが、複数のディレクトリに拡張する方が簡単です。