-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