В терминале это сработало:
echo "192.168.1.0/24" | sed -n 's/0.24/2/p'
В сценарий работает:
str="192.168.1.0/24"
newstr=$(sed -n 's/0.24/2/p' <<<$str)
Чтобы заменить последнюю цифру любого IP-адреса:
str="192.111.12.20"
newstr=$(awk -F"." '{print $1"."$2"."$3".2"}'<<<$str)
echo $newstr
wpa_supplicant
отвечает только за протоколы шифрования (WPA, WPA2 и т. Д.) И аутентификацию. Уровень и качество сигнала измеряется ядром.
Вы можете получить информацию о текущей мощности сигнала, напримерс iw dev wlan0 link
(информация об активном канале) или iw dev wlan0 station dump
(информация обо всех известных станциях, которая является только подключенной станцией для управляемого интерфейса).
Нетрудно написать сценарий оболочки (используя sleep
, grep
и т. Д.) Для регулярного мониторинга силы тока и выполнения команды отключения согласно wpa_cli
, если уровень сигнала слишком низкий.
AFAIK, для этого с wpa_cli
нет специальной команды, и в этом нет необходимости, потому что, когда уровень сигнала становится слишком низким, драйвер ядра отключается сам по себе. Так что я не уверен, что вы получите, отключившись немного раньше.