DNS1="8.8.8.8"
DNS2="8.8.4.4"
DNS3="0.0.0.0"
DNS4="139.175.150.20"
DNS5="168.95.1.1"
DNS_CNT=5
RESOLV_CONF="/etc/resolv.conf"
i=1
echo "; generated by my script" > $RESOLV_CONF
while [ $i -le $DNS_CNT ]
do
eval "DNS_ADDR=\$DNS$i"
if [ "0.0.0.0" != "$DNS_ADDR" ]; then
echo "nameserver $DNS_ADDR" >> $RESOLV_CONF
fi
done
最主要看 do 迴圈的第一行,eval "DNS_ADDR=\$DNS$i" ,因為 eval 會去執行它後面帶出來的那一行,而 \$ 會是 $ 符號,$i 則是目前 i 的值,因此當 i=1 時 "DNS_ADDR=\$DNS$i" 就會是 DNS_ADDR=$DNS1,透過 eval 執行,就會把 DNS1 的值帶給 DNS_ADDR 以利後面處理。
沒有留言:
張貼留言