unix 如何解析mmcli输出中的调制解调器编号、标识符和名称?

ijxebb2r  于 2023-04-11  发布在  Unix
关注(0)|答案(1)|浏览(371)

我想这对你们大多数人来说都很简单,但是从下面的代码中解析调制解调器号和modemmanager文件夹号的最有效方法是什么:

root@5109910:~# mmcli -L
    /org/freedesktop/ModemManager1/Modem/1 [Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE

ModemManager11[Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE是动态的,我希望能够在一个shell脚本操纵调制解调器。
更具体地说,我想生成以下内容:

MODEM_NUMBER=$(mmcli -L | grep ***PATERN TO PARSE 1 HERE***)

MODEM_DIR=$(mmcli -L | grep ***PATERN TO PARSE ModemManager1 HERE***

MODEM=$(mmcli -L | grep ***PATTERN TO PARSE [Sierra Wireles etc etc HERE***)
c3frrgcw

c3frrgcw1#

使用pure bash,你可以一步完成,即一次调用mmcli -L命令:

IFS='/ ' read -r _ _ _ mm _ mn mt < <(mmcli -L)

# chek variable's content
declare -p mm mn mt

输出:

declare -- mm="ModemManager1"
declare -- mn="1"
declare -- mt="[Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE"

详情:

  • IFS='/ ':设置/或空格作为输入字段分隔符
  • read -r _ _ _ mm _ mn mt:读取变量mmmnmt中的第4、第6和第7个测试,同时忽略其余测试
  • < <(mmcli -L):调用mmcli -L并将其输出提供给read的命令替换

相关问题