다른 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

약간 느리지만 여러 디렉터리로 확장하기가 더 쉽습니다.

관련 정보