我认为这对大多数人来说都是一个简单的方法,但是从中解析调制解调器编号和调制解调器管理器文件夹编号的最有效方法是什么:
root@5109910:~# mmcli -L
/org/freedesktop/ModemManager1/Modem/1 [Sierra Wireless Inc.] Sierra Wireless EM7345 4G LTE
ModemManager1
、1
和 [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***)
最佳答案
使用纯 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
:读取变量mm
中的第 4、6、7 次以后的测试,mn
和mt
却忽略了休息 -
< <(mmcli -L)
:命令替换以调用mmcli -L
并将其输出输入read
关于bash - 如何解析 mmcli 输出中的调制解调器编号、标识符和名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68598552/