두 개의 배열로 다음 레코드가 있는지 확인하고 싶습니다. 나는이 그것에 대해가는 가장 좋은 방법인지 모르겠지만, 아래 코드에서 가능하다 같은 논리에서 보이는 :두 개의 배열을 사용하여 DNS 레코드가 배쉬에 있는지 확인하려면 어떻게해야합니까?
위의 코드가 실행Domain_checking() {
array=(
grafana
kibana
prometheus
alertmanager
)
array2=(
Name
NXDOMIAN
)
for index in ${!array[*]}; do
echo "checking that ${array[$index]} exists in the domain domain.co.uk"
DOMAIN_CHECK=$(nslookup ${array[$index]}.domain.co.uk | grep {array2[$index]})
if [[ $DOMAIN_CHECK == *'Name'* ]]; then
echo "The A record for ${array[$index]}.domain.co.uk exists"
elif [[ $DOMAIN_CHECK == *'NXDOMIAN'* ]]; then
echo "The A record for ${array[$index]}.domain.co.uk dose not exist"
fi
done
}
Domain_checking
, 루프가 시작하지 그리고 echo
문에 대해서는 을 echo
문에 추가하면 두 배열의 값을 볼 수 있습니다.
그러나 배열 값은 DOMAIN_CHECK
에 없습니다. 이것이 for 루프가 반복되는 이유는 확실하지 않습니다.
그래서 나는 DOMAIN_CHECK
에 어떤 종류의 값이 있어야하고 if 문을 사용해야한다고 생각합니다. 그러나 어떤 이유로 든이 경우가 아닌 것 같습니다. 왜 그런가요?
"변수"의 모든 인스턴스를 참조 할 변수로 바꿀 수 있습니까? –
ok 변수가 DOMAIN_CHECK 인 질문을 업데이트했습니다. – user3700919
'| grep {array2 [$ index]}'? 어느 쪽이든 구문 오류가 발생했습니다. grep $ {array2 [$ index]}' – arco444