龙空技术网

实现SHELL中的列表和字典效果

博哥爱运维 238

前言:

今天大家对“python列表套字典取值”大体比较关切,看官们都想要了解一些“python列表套字典取值”的相关资讯。那么小编也在网摘上汇集了一些有关“python列表套字典取值””的相关文章,希望各位老铁们能喜欢,朋友们快快来了解一下吧!

大家好,我是博哥爱运维。编写代码,很多情况下我们需要有种类型来存储数据,在python中有列表和字典,golang中有切片slice和map,那么在shell中,我们能否实现列表和字典呢,答案是肯定的,下面跟着博哥的示例来一步步掌握在shell中实现列表和字典的方法吧。

-------------SHELL数组(实现列表)-------------# family=(aaa bbb ccc)    <--- 定义数组# echo ${#family[*]}     <--- 取数组里变量长度3# echo ${family[0]}     <--- 取数组第一个变量aaa# echo ${family[1]}     <--- 取数组第二个变量bbb# echo ${family[2]}     <--- 取数组第三个变量ccc# echo ${family[*]}     <--- 取数组里所有变量aaa bbb ccc# echo ${family[*]:2}     <--- 去掉数组里的前两个值,保持取最后一个值ccc脚本示例:# vim test.sh#!/bin/bashfamily=(     # or 也可以这样定义  family=(aaa bbb ccc)aaa bbb ccc)for name in ${family[*]}   #第一种方法,常规for循环取值的方式doecho $namedoneecho "================="for ((name=0;name<${#family[*]};name++))   #第二种方法doecho ${family[name]}done执行结果:[root@nfs-server scripts]# bash test.sh aaabbbccc=================aaabbbccc实现"字典":my_config=(  shanghai+  beijing+  hongkong+)for r in `echo ${regions}`do  export MY_REGION=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $1}'`  export MY_URL=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $2}'`  export MY_USERNAME=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $3}'`  export MY_PASSWORD=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $4}'`  echo "====== $r START  ======"  echo $MY_URL  echo $MY_USERNAME  echo $MY_PASSWORD  echo $MY_REGION  echo "====== $r END  ======"done# 另外一种实现字典的形式#!/bin/bashtest='{  "aaa": 1,  "bbb": 2,  "ccc": 3}'echo $test|jq -r ".aaa"

标签: #python列表套字典取值