shell 数组的几种形式汇总:
1.
HOSTS=()
while read line
do
HOSTS[${#HOSTS[@]}]=$line
done < $hostfile
while read line
do
HOSTS[${#HOSTS[@]}]=$line
done < $hostfile
2.
for i in "${A[@]}"; do
echo $i
done
3.
INFOS="
A,
B,
C,
D
"
for INFO in $INFOS
do
AREA=`echo $INFO | awk -F ',' '{print $1}'`
echo $AREA
done
4.#!/bin/bash
ary="hyves nk us it tr ae"
for i in $ary;
do
echo $i
done
5.#!/bin/bash
ary=("hyves" "nk" "us" "it" "tr" "ae")
for i in ${ary[@]};
do
echo $i
done
6.
#!/bin/bash
arr=("hyves" "nk" "us" "it" "tr" "ae")
len=${#arr[@]}
for((i=0;i<len;++i))
do
echo ${arr[$i]}
done
#
7.Foo=("a" "b" "c" "d" "e")
for name in ${Foo[@]}
do
echo $name
done
for (( i = 0 ; i < ${#Foo[@]} ; i++ ))
do
echo ${Foo[$i]}
done
8.判断:
#
ary=(hyves,nk,us,it,tr,ae)
if [[ "${ary[@]}" =~ $AREA ]]; then
CODE_PATH=/mnt/htdocs/farm/
echo "$CODE_PATH"
else
echo "OK"
fi
#
============================================
`cat hostfile |tr '\n' ','` 文件列表合并一行
[root@server ~]# A=$(sed -n '$=' a.txt)
[root@server ~]# sed $(($A-3+1)),${A}d a.txt
或者使用上面两条命令。删除的是倒数3行的。
如果删除倒数300 ,那就把3改为300 就可以了。
pdsh
http://www.grid5000.fr/mediawiki/index.php/PDSH
time pdsh -R ssh -l root -w `cat host-testweb.txt|tr '\n' ','` "w|grep load ;hostname "
pssh
time pssh -h hostfile -P "w|grep load ;hostname "
转载于:https://blog.51cto.com/wiigood/897871