t113-shell文件制作

发布时间 2023-08-27 21:41:36作者: 悠闲的小莫

WiFi页面的设置大概已经做好了,但是差个交互,不然就只能暂时的设置ip地址不能够上电就设置,那么我们就需要一个shell脚本文件来执行这些和内核交互的指令

建立一个shell基本文档

wifi的写入设置函数:

add_wifi_conf(){
	[ ! -e /var/run ] && mkdir -p /var/run
	[ ! -e /var/run/wifi.conf ] && touch /var/run/wifi.conf
	status="`cat /etc/wpa_supplicant.conf | grep "$1"`"
	if [ "$status" == "" ]; then
	    echo $status
		id=$(wpa_cli -p /var/run/wpa_supplicants -i wlan0 add_network) && \
		echo "`wpa_cli -p /var/run/wpa_supplicants -i wlan0 set_network $id ssid '"'$1'"'`" && \
		echo "`wpa_cli -p /var/run/wpa_supplicants -i wlan0 set_network $id psk '"'$2'"'`"
		echo "`wpa_cli -p /var/run/wpa_supplicants -i wlan0 select_network $id`"
		echo "`wpa_cli -p /var/run/wpa_supplicants -i wlan0 save_config`"
	else
		id=$(wpa_cli -p /var/run/wpa_supplicants -i wlan0 list_network | grep "$1" | awk '{print $1}') && \
		echo "`wpa_cli -p /var/run/wpa_supplicants -i wlan0 select_network $id`"
		echo $status
	fi
}

这里要注意的是''中间的变量是不能变的,如果要加入变量那就要跟我一样再加一个''

shell中穿插命令并返回:

shell中的单引号':

同时,由于之前的awk的使用并不明确清晰,在这儿补充一下用法:

https://blog.csdn.net/onj123/article/details/100743092

ip设置的文件写入 :

set_wifi_ip_conf(){
    [ ! -e /var/run ] && mkdir -p /var/run
    [ ! -e /var/run/wifi.conf ] && touch /var/run/wifi.conf
    echo "hcpc 0 ip $2" > /var/run/wifi.conf
}

简单地写一下交互:

既然吧ip写入到文件里面了那么网络的静态地址也要改一下:

我把网络启动时候的连接文件放在了init.d中

S45network

这样启动就可以根据文件设置ip地址了