3
nmcli -t -f STATE,WIFI,WWAN

给出输出

connected:enabled:disabled

我想转换成类似的东西

Networking: connected, Wifi: enabled, WWAN: disabled

对我来说合乎逻辑的解决方案是把它变成一个数组。作为 bash 脚本的新手,我读过数组只是常规变量,元素由空格分隔。目前我的代码是

declare -a NMOUT=$(nmcli -t -f STATE,WIFI,WWAN nm | tr ":" "\n")

这似乎适用于 for 循环,但如果我想询问特定元素,如在 ${NMOUT[]} 中,则不是。显然,我在这里错过了一些关键概念。如何访问此数组中的特定元素?

4

2 回答 2

2
IFS=: read -a NMOUT < <(nmcli -t -f STATE,WIFI,WWAN)
于 2012-05-10T20:32:45.600 回答
1

Ignacio Vazquez-Abrams 为创建阵列提供了更好的解决方案。我将解决发布的问题。

bash 中的数组由从 0 开始的整数索引。

"${NMOUT[0]}" # first element of the array
"${NMOUT[2]}" # third element of the array
"${NMOUT[@]}" # All array elements
"${NMOUT[*]}" # All array elements as a string

以下提供了有关在 bash 中使用数组的良好信息:http: //mywiki.wooledge.org/BashFAQ/005

于 2012-05-11T02:12:53.550 回答