查看Wi-Fi是否连接成功

查看Wi-Fi是否连接成功

我需要编写一些脚本来确定 Wi-Fi 连接是否成功。

我的 Wi-Fi 配置为/etc/wpa_supplicant.conf

我知道如何将 SSID 和 PSK 添加到该文件并连接到它。

我的意思是这样的:

variable ssid = "test"
variable psk = "psk"

try to connect to {ssid, psk}

if(connection == True) {
    add {ssid, psk} to the /etc/wpa_supplicant.conf
else {
    echo("PSK is wrong, try it again.")

我不知道该怎么办尝试连接到 {ssid, psk}

答案1

#!/bin/bash

killall wpa_supplicant 

sleep 1

wpa_supplicant -i wlan0 -c<(wpa_passphrase "$1" "$2") -B \
               -C /var/run/wpa_supplicant \
               -f /etc/wpa_supplicant.log
sleep 3

wpa_status=$(wpa_cli  status | grep wpa_state | cut -d"=" -f2)

if test  "$wpa_status" = "COMPLETED"
then
    echo "$wpa_status"
    wpa_passphrase "$1" "$2" >> /etc/wpa_supplicant.conf
else
    echo " $wpa_status : Try again"
    exit 1
fi

用法(作为 root):

# ./script ssid password 

-f将创建一个日志文件,可以使用它代替命令来获取接口wpa_cli status的状态。wlan0

wpa_passphrase会将正确的“ssid”和“密码”保存到/etc/wpa_supplicant.conf.

/etc/wpa_supplicant.conf包含:

ctrl_interface=/run/wpa_supplicant
update_config=1

wlan0如果您需要连接,请分配 IP 地址( dhclientdhcpcdip...)

@TSJNachos117评论:您可以将grep和替换cutawk

 wpa_cli status | awk -F = '{if($0 ~ /wpa_state/) print $2}'

相关内容