首页 > 其他分享 >wifi自动连接脚本

wifi自动连接脚本

时间:2024-07-01 15:08:39浏览次数:24  
标签:脚本 cli wifi dev echo interface wpa 连接

#!/bin/sh
#
# Start the wifi....
#

# Debian ifupdown needs the /run/wifi lock directory
mkdir -p /run/wifi

#自定义变量
interface_dev="wlan0"
wifi_name="xxxx"
wifi_password="xxxx"

#执行wpa_cli前先调用wpa_supplicant不然不成功,不知道为何
wpa_supplicant -i wlan0 -c/etc/wpa_supplicant.conf & iwconfig wlan0

func_connect_wifi()
{
  echo "WIFI设备:$interface_dev"

  #查询interface_dev网卡是否存在

  verifi_dev=`ifconfig|grep -ci "$interface_dev"` 

  if [[ $verifi_dev == 0 ]];then
    echo "该设备不存在"
    exit -1
  fi

  wifi_id=`wpa_cli -i $interface_dev add_network`
  echo "准备建立新连接 wifi_id = $wifi_id"
  wpa_cli -i $interface_dev scan
  echo "当前环境WiFi信息:"
  wpa_cli -i $interface_dev scan_result

  result=$(wpa_cli -i $interface_dev set_network $wifi_id ssid \"$wifi_name\")
  echo "result = $result"
  if [[ $result != "OK" ]];then
    echo "WIFI热点查找失败"
    wpa_cli -i wlan0 remove_network $wifi_id
    exit -1
  fi

  result2=$(wpa_cli -i $interface_dev set_network $wifi_id psk \"$wifi_password\")
  if [[ $result2 != "OK" ]];then
    echo "WIFI密码错误连接失败"
    wpa_cli -i wlan0 remove_network $wifi_id
    exit -1
  fi

  result3=$(wpa_cli -i $interface_dev enable_network $wifi_id)
  echo "result = $result"
  if [[ $result3 != "OK" ]];then
    echo "连接失败"
    wpa_cli -i wlan0 remove_network $wifi_id
    exit -1
  fi

  result4=$(wpa_cli -i $interface_dev select_network $wifi_id)
  echo "result = $result4"
  if [[ $result3 != "OK" ]];then
    echo "WiFi切换失败"
    exit -1
  fi
  echo "WiFi已切换开始自动分配IP"
  resule5=$(udhcpc -b -i $interface_dev -q)
  echo "连接完成"
  exit 0
}

func_dele_wifi()
{
  echo "WIFI关闭设备:$interface_dev"

  verifi_dev=`ifconfig|grep -ci "$interface_dev"`
  if [[ $verifi_dev == 0 ]];then
    echo "该设备不存在"
    exit -1
  fi
  echo "当前WiFi列表"
  wpa_cli -i $interface_dev list_network
  echo "选择删除对象"
  read wifi_id
  wpa_cli -i $interface_dev remove_network $wifi_id
}

case "$1" in
  start)
    printf "Starting wifi: "
    func_connect_wifi
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    ;;
  stop)
    printf "Stopping wifi: "
    func_dele_wifi
    [ $? = 0 ] && echo "OK" || echo "FAIL"
    ;;
  restart|reload)
    "$0" stop
    "$0" start
    ;;
  *)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac

exit $?

标签:脚本,cli,wifi,dev,echo,interface,wpa,连接
From: https://www.cnblogs.com/linux-learn/p/18278109

相关文章

  • WhaleStudio 2.6正式发布,WhaleTunnel同步性能与连接器数量再创新高!
    在这个数据驱动的大模型时代,数据集成的作用和意义愈发重要。数据不仅仅是信息的载体,更是推动企业决策和创新的关键因素。作为全球最流行的批流一体数据集成工具,WhaleTunnel随着WhaleStudio2.6版本正式发布,带来了多项功能增强和新特性,性能大幅提升,连接器和功能方面也有大量更新......
  • Batch脚本中的用户交互:CHOICE命令的妙用
    Batch脚本中的用户交互:CHOICE命令的妙用在自动化脚本的世界中,Batch文件以其简洁和高效而著称,但有时我们也需要与用户进行交互以获取输入或提供选择。这就是CHOICE命令大放异彩的地方。本文将深入探讨如何在Batch文件中使用CHOICE命令,通过实际代码示例,展示如何利用这一命令......
  • 分组 左连接 合并 SQL
     SELECTtemp.bz,sum(temp.bzsj)bzsj,sum(temp.llcl)llcl,max(temp.bzep)bzep,sum(temp.bzxscl)bzxsclFROM(selectt.BZbz,sum(t.bzsj)bzsj,sum(t.CL)llcl,max(hye.sep)bzep,sum(t.CL)/sum(t.bzsj)*60bzxsclfrom(SELECTSUM(SJZL)/1000CL,PH,G......
  • 在Linux中,有⼀个脚本运行时间可能超过2天,如何做才能使其不间断的运行,而且还可以随时观
    在Linux中,要确保一个脚本能够长时间运行而不被中断,并且可以随时观察其输出信息,可以采取以下步骤:使用nohup命令:nohup命令可以防止脚本在用户注销后被终止。使用nohup运行脚本时,它会忽略所有的挂断(HUP)信号。nohup/path/to/your/script.sh>output.log2>&1&这个命令会将脚......
  • webAPI连接SQLserver,并快速建立数据模型
    首先,你需要有一个webAPI来作为Android应用和SQLserver数据库之间的中间件,创建该api在项目中导入三个NuGet包通过服务器资源管理器连接数据库,获取数据库连接的字符串 快速建立数据模型思路:通过数据库创建数据类:导入包=>打开程序包管理器控制台=>选择项目=>Scaffold-DbCont......
  • C++文件路径处理3 - 判断指定目录的文件类型(文件夹|普通文件|软连接)
    1.关键词2.filetype.h3.filesystem.h4.filesystem_unix.cpp5.filesystem_win.cpp6.filepath.h7.filepath.cpp8.测试代码9.运行结果10.源码地址1.关键词关键词:C++文件路径处理文件夹普通文件软连接跨平台应用场景:根据指定的目录路径,判断该目录的文......
  • Shell脚本
    Shell脚本目录Shell脚本一、Shell脚本的概述1、Shell脚本的概念2、Shell脚本的应用场景3、Shell脚本的作用二、Shell编程规范1、编写脚本代码2、shell脚本的构成3、执行脚本的方式:3.1使用指定的shell解释器:(不需要脚本有执行权限)3.2路径的方式:3.3使用source和“.”执行脚本:这种一......
  • 完全离线的本地问答模型LocalGPT如何实现无公网IP远程连接提问
    文章目录前言环境准备1.localGPT部署2.启动和使用3.安装cpolar内网穿透4.创建公网地址5.公网地址访问6.固定公网地址前言本文主要介绍如何本地部署LocalGPT并实现远程访问,由于localGPT只能通过本地局域网IP地址+端口号的形式访问,实现远程访问还需搭配cpola......
  • 【JavaScript脚本宇宙】打造完美用户体验:必备JS图形库指南
    探索顶尖JavaScript图形库:从jsPlumb到mxGraph前言在现代的Web开发中,交互式图形和数据可视化库成为了不可或缺的工具。这些库不仅提供了丰富的功能,还大大简化了开发人员的工作流程。本文将介绍和比较六个流行的JavaScript图形和数据可视化库:jsPlumb、GoJS、draw2d、Cytosca......
  • 【JavaScript脚本宇宙】加速您的网站:图像优化工具和库的终极指南
    别让大图拖垮你的应用:如何正确优化图像前言在数字时代,图像是我们日常生活中不可或缺的一部分。然而,随着图像数量的增加和分辨率的提高,它们也占据了越来越多的存储空间和带宽。为了解决这个问题,开发人员可以使用各种图像优化工具和技术来减小图像文件的大小,同时保持其质量......