shell 的关联数组

shell 的关联数组

引言

shell也有Map的数据结构,哈哈哈,是挺高大上的。万能的shell。。。。
万恶的mac,sed和linux不一样,关联数组和linux也不要一样。要你干啥!!!

一个需求的处理

感谢这个博客https://my.oschina.net/uyinn/blog/266844,不然我还在mac上弄,为啥关联数组就不好使了呢?

问题

把字符串abc=123,tom=456,lixi=789赋值给abc、tom、lixi三个变量

思路

字符串 -> 数组 -> 关联数组 -> 赋值给变量

代码

#!/bin/bash
STR='abc=123,tom=456,lixi=789'
function string_var() {
	# change to array
    local str=(`echo ${STR} | tr ',' ' '`)
    echo "str: ${str[@]}"
 	# change to ass array
    declare -A str_dict
    for mapping in "${str[@]}"
    do
        str_dict["${mapping%=*}"]=${mapping#*=}
    done

    tom=str_dict['tom']
    lixi=str_dict['lixi']
    abc=str_dict['abc']
    
    for k in "${!str_dict[@]}"
    do
            echo $k '--' ${str_dict[$k]}
    done
}

string_var

结果

[root@04dd48aa710b bin]# sh str.sh
str: abc=123 tom=456 lixi=789
lixi -- 789
abc -- 123
tom -- 456
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值