문자열에 대한 명령 출력 검색

문자열에 대한 명령 출력 검색

나는 간단한 스크립트에 갇혀 있습니다. tracepath여러 주소에서 실행하고 특정 IP가 .ipt 파일의 출력에 포함되어 있는지 확인하고 싶습니다 tracepath. 이제 다음이 있습니다.

if tracepath -n google.com | grep x.x.x.x 
do 
echo bal bal 
else 
echo ova ova ova
fi

그러나 이것은 작동하지 않습니다.

답변1

이 구문을 사용해 보세요. 출력을 원하지 않는 것 같으 므로 (조용한) 스위치를 grep사용합니다 .-q

(traceroute -n google.com | grep -q x.x.x.x) && echo "Yes" || echo "Nope"

또는 다음과 같은 명령문을 사용하십시오 if.

if (traceroute -n google.com | grep -q x.x.x.x)
then
  echo "Yes"
else
 echo "Nope"
fi

답변2

구문이 잘못되었습니다. if조건 뒤에는 다음이 then아니 어야 합니다 do.

tracepath -n google.com | grep x.x.x.x
if [ $? -eq 0 ]
then
echo "bal bal" 
else
echo "ova ova ova"
fi

관련 정보