shell函数怎么返回一个关联数组
2个回答
展开全部
# 实例演示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
# 重点在于自己怎么样去构造适合用数组存储的数据格式
# 函数 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
展开全部
Shell函数返回值,常用的两种方式:return,echo
1) return 语句
shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。
示例:
#!/bin/sh
function test()
{
echo "arg1 = $1"
if [ $1 = "1" ] ;then
return 1
else
return 0
fi
}
echo
echo "test 1"
test 1
echo $? # print return result
echo
echo "test 0"
test 0
echo $? # print return result
echo
echo "test 2"
test 2
echo $? # print return result
1) return 语句
shell函数的返回值,可以和其他语言的返回值一样,通过return语句返回。
示例:
#!/bin/sh
function test()
{
echo "arg1 = $1"
if [ $1 = "1" ] ;then
return 1
else
return 0
fi
}
echo
echo "test 1"
test 1
echo $? # print return result
echo
echo "test 0"
test 0
echo $? # print return result
echo
echo "test 2"
test 2
echo $? # print return result
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询