다음을 시도하고 있지만 원하는 결과를 얻지 못하는 것 같습니다. 기본적으로 응답을 받을 때까지 dig를 실행한 다음 종료하고 나머지 스크립트를 계속 진행하고 싶습니다.
until dig +answer example.com > /dev/null ;do :; done
답변1
당신은 시도 할 수 있습니다:
until host example.com > /dev/null ;do sleep 1; done
답변2
몇 가지:
- dig는 레코드가 존재하지 않는 경우에도 true 결과를 반환합니다.
$ dig +answer non-existent-record-$(date +%F).com && echo "Shouldn't see this"
# => Shouldn't see this
대신 Mircea가 말했듯 이 /usr/bin/host
. AAAA 레코드 또는 MX 레코드가 존재할 때 dig와 dig 사이의 동작에는 매우 미묘한 차이가 있지만 아마도 영향을 미치지는 않을 것입니다.[ ! -z "$(dig +short example.com.)" ]
host
- 대신
do :
다음을 사용하십시오/usr/bin/true
.
TL, DR, Mircea의 대답은 나에게 효과적이었지만, 다르기 때문에 여기에 내 의견이 있습니다. 테스트할 때마다 1초 동안 멈추지 않는다는 점이 다릅니다. 이는 원하는 것일 수도 있고 아닐 수도 있으며, AAAA 또는 MX 레코드가 있어도 종료되지 않습니다.
until [ ! -z "$(dig +short example.com)" ]; do true; done