#!/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 , 是一个数组 , 不是一个字符串了 ,支持一个个取出操作 ,经确认 , 只需要把用空格拆分
的字符串 , 放入括号中 , 自动转为数组 .