其中 variable 用 variable=(d s w w w)定义,ipaddr 用 Google 到的这一句定义
ipaddr=$(ip addr | awk '/^[0-9]+: / {}; /inet.global/ {print gensub(/(.)/(.*)/, "\1", "g", $2)}')
所以 ipaddr 到底是一个数组还是个字符串?长度明明是 1 为什么还能用 for 打印出来?获取到的 ipaddr 包含了我的 ipv4 和 ipv6 地址,我想将这两个值分别取出来,该怎么做?
1
kiwi95 2018-12-08 00:27:28 +08:00 via Android 1
${#var} 是变量长度,字符串的长度或者数组元素的个数, ${arr[*]} 是数组所有元素拼成字符串
|
2
alvin666 OP @kiwi95 那 echo ${#variable[*]}呢?为什么一个字符串 ipaddr 也能用 for 拆开?我该怎么取到这两个拆开的值?用${ipaddr[0]}取到的是和$ipaddr 一样的结果
|
3
kiwi95 2018-12-08 08:24:36 +08:00 via Android 1
shell 中 ${are[0]} 和 ${arr} 返回的都是数组的第一个元素,这个文档有规定的
|