次のレコードが2つの配列で存在するかどうかをチェックしたいと思います。上記のコードが実行されると2つの配列を使用してDNSレコードがBashに存在するかどうかを確認するにはどうすればよいですか?
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
ステートメントに{array2[$index]}
を追加したときとecho
文に対して、私は両方の配列内の値を参照してください。
しかし、配列の値は、私はループの反復がそうであるように、これはある理由としてわからないんだけどこれ、DOMAIN_CHECK
には存在しません。
だから、私はDOMAIN_CHECK
がある種の値を持ち、ifステートメントをヒットするはずですが、何らかの理由でこれは当てはまりません。何故ですか?
あなたが参照しているどの変数で「変数」のすべてのインスタンスを置き換えることはできますか? –
OK変数がDOMAIN_CHECKの質問を更新しました – user3700919
'| grep {array2 [$ index]} '?いずれにしても、構文エラーがあります。 grep $ {array2 [$ index]} ' – arco444