bash shell函数返回数组字符串

发布时间:2020-04-28编辑:脚本学堂
bash shell函数返回数组字符串

bash shell函数返回数组字符串
 

复制代码 代码如下:

#!/bin/bash
# script:getselfvar.sh
# 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供
# 脚本使用,例子中的ip和域名是处理过的
# 演示如何利用函数返回值构造数组
# 来源:Lover的工具小屋
# author: Lover

# 实例演示shell函数返回数组,准确说应该是返回字符串,然后通过一定的构造得到一个数组
# 重点在于自己怎么样去构造适合用数组存储的数据格式
# 函数 thinker()
# 功能 将附加在脚本末尾的 域名:IP 抽取出来,存储在字符串变量中,并返回该变量
function thinker(){
# 这里是过滤脚本本身尾部的域名ip区域
vars=`cat $0 | sed -n '/# BEGINVAR$/,/# ENDVAR$/p' | grep -v -E '# BEGINVAR|# ENDVAR' | sed -n 's/^# //gp'`
echo $vars
}

# 这里演示了获取shell函数返回值
# 我这里需要将返回值存放到数组中,通过下面的形式就构造了一个数组了
domainip=(`thinker`)
echo ${domainip[0]}
echo ${domainip[1]}

#
# 脚本的要实现的具体功能部分就省略了

# BEGINVAR
# xx2.yy.com:131.10.238.190
# xx3.yy.com:133.106.227.132
# xx4.yy.com:123.160.19.138
# xx5.yy.com:131.10.18.177
# ENDVAR