shell 拆分字符串成数组 放入数组

#!/bin/bash
a="node1 node2 node3 node4 node5"
OLD_IFS="$IFS"
IFS=" "
arr=($a)
IFS="$OLD_IFS"
for s in ${arr[@]}
do
    echo "$s" 
done


 第二种: 用awk
a="node1 node2 node3 node4 node5"
arr=(`echo ${a}|awk '{len=split($0,a,",");for(i=1;i<=len;i++) print a[i]}'`)     

for item in ${arr[*]}
do
echo $item
done
#此时的arr 就是一个数组  , a  是我们传入的参数 ,可自己预先定义
arr=(`command`) 其实就是执行完命令 的结果变成一个数组 , 就相当于下了好多蛋 , 放入一个篮子数组汇总

 


 

大道至简的方法 , 比如一长串 IP hostname的字符串 
ipaddr="node1  node2  node3  node4  node5  node6"
iparr=($ipaddr)

此时的 iparr , 是一个数组 , 不是一个字符串了 ,支持一个个取出操作 ,经确认 , 只需要把用空格拆分
的字符串 , 放入括号中 , 自动转为数组 .

 

 

 

 

posted @ 2020-06-12 18:46  挪威森林猫Zzz  阅读(5786)  评论(0编辑  收藏  举报