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 []}。显然,我错过了一些关键概念。如何访问此数组中的特定元素?
答案 0 :(得分:2)
IFS=: read -a NMOUT < <(nmcli -t -f STATE,WIFI,WWAN)
答案 1 :(得分: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