다음 스크립트는 정상적으로 작동합니다.
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
약간 느리지만 여러 디렉터리로 확장하기가 더 쉽습니다.