-1
我寫了這個bash腳本來自動配置網絡,它輸出ping: www.google.com: Name or service not knoew
,但是網絡已經連接了,我輸入ping www.google.com
它工作的很完美。在netctl啓動後ping失敗
有沒有在我的代碼中有錯?或bash中的任何異步功能?
function network_install() {
if [ -n "$WIFI_INTERFACE" ]; then
cp /etc/netctl/examples/wireless-wpa /etc/netctl
chmod 600 /etc/netctl/wireless-wpa
sed -i 's/^Interface=.*/Interface='"$WIFI_INTERFACE"'/' /etc/netctl/wireless-wpa
sed -i 's/^ESSID=.*/ESSID='"$WIFI_ESSID"'/' /etc/netctl/wireless-wpa
sed -i 's/^Key=.*/Key='"$WIFI_KEY"'/' /etc/netctl/wireless-wpa
if [ "$WIFI_HIDDEN" == "true" ]; then
sed -i 's/^#Hidden=.*/Hidden=yes/' /etc/netctl/wireless-wpa
fi
netctl start wireless-wpa
fi
ping -c 5 $PING_HOSTNAME
if [ $? -ne 0 ]; then
echo "ERROR!! connect failed."
exit
fi
}
可能是網絡接口建立連接的延遲。建議在該ping命令之前放置超時。 – Trickycm
變量$ PING_HOSTNAME是絕對正確的,它讓我感到困惑的是,它在網絡連接語句後失效了,但是當我在函數執行後輸入時,ping成功了 – litbear
實際接口的連接延遲如何?或許在ping之前的函數中超時,以使接口有機會連接。 – Trickycm