柳罐罐 2018-06-25 14:22 采纳率: 30.8%
浏览 1635
已采纳

使用bash脚本写wpa_cli命令的时候遇到的变量传递的问题

如题,我在使用 wpa_cli 这个命令写入wifi信息的时候感觉每次都要打很长的代码
于是写了一个bash脚本想使得写入更加轻松,但是在写入的时候遇到了变量调用的问题
希望大家能看一看哪里出了问题
代码大概如下:

read -p "intput a SSID:" ssid
read -p "input password of $ssid :" psk

a= ./wpa_cli -i wlp5s0 add_network
./wpa_cli -i wlp5s0 set_network $a ssid '"$ssid"'
./wpa_cli -i wlp5s0 set_network $a psk '"$psk"'

如上所示 ./wpa_cli -i wlp5s0 add_network 这个命令会返回给窗口一个值(networkid),是这样子的
图片说明
于是我希望用 a= ./wpa_cli -i wlp5s0 add_network 这样一个命令来获取这个返回值,证明后发现是不可以的,那么我怎么样能够获得 ./wpa_cli -i wlp5s0 add_network这个命令返回给我的network id的值呢?

然后的问题也随之而来,使用 wpa_cli 命令设置这个网络的ssid和psk需要用到
$ wpa_cli -i wlan0 set_network 0 ssid '"name"'
$ wpa_cli -i wlan0 set_network 0 psk '"psk"'
这两种命令
图片说明
这里面的name和psk外面包的是单引号加上双引号
而我想用之前获取的ssid和psk还有networkid来完成同样的操作
a= ./wpa_cli -i wlp5s0 add_network
./wpa_cli -i wlp5s0 set_network $a ssid '"$ssid"'
./wpa_cli -i wlp5s0 set_network $a psk '"$psk"'
这里面被单双引号包括的$ssid和$psk还是一个变量了吗
而运行了这个脚本之后发现确实存在问题
networkid也没有成功的用$a变量替换掉,ssid和psk也没有
图片说明
如图所示
请问大神们有什么方法能让我在单双引号中调用这个变量呢,转义符可以吗?

说了这么多 主要问题应该在于如何在 ‘ “ ” ’ 中引入变量
and
如何能获得创建的network id的值到一个变量上?

  • 写回答

2条回答 默认 最新

  • devmiao 2018-06-25 15:38
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝