shell script 求助

5毛 发布于 2013/04/26 23:45
阅读 106
收藏 1
存在一个数组变量:
SERVER=(exlap001 exlap002 exlap003)

怎样子实现输出一个如下列的list:
LIST=exlap001:8080,exlap002:8080,exlap003:8080

注意:SERVER 的数量可以是3个,4个,5,6....也可能只有一个

输出的list是用","逗号分隔,而且最后一个是没有逗号的。假如SERVER只有一个,就是:LIST=exlap001:8080


请教一下,有没有什么函数(或者好的方法)可以实现啊?
一筹莫展中。。。

加载中
0
亭舸翁
亭舸翁

这样可以吗?

LIST=$(printf ",%s:8083" "${SERVER_NAME[@]}")   

echo ${LIST:1}

5毛
5毛
能不能解释一下各个字段的含义啊?我试过了 可以的,但是我不理解实现原理。。。。
0
5毛
5毛

好吧 我承认以下脚本很2.。。。

有没有高人撒一个更好的出来啊,我实在不想用这个笨方法。。。。丢人的。。。。

数组?AWK?SED?whatever。。。。。

#!/bin/bash
SERVER_NAME=(exlap001 exlap002 exlap003)
LIST_SP=`
for ((i=0;i<${#SERVER_NAME[@]};i++))
do
printf ${SERVER_NAME[i]}:5603,
done
`
LIST=`echo ${LIST_SP} |sed 's/.$//'`

echo "dispatcher_list=${LIST}"

=>dispatcher_list=exlap001:5603,exlap002:5603,exlap003:5603

0
5毛
5毛
哦 我知道 printf格式化打印, 谢谢你了哈
返回顶部
顶部