码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 实现SHELL中的列表和字典效果


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

    1. -------------
    2. SHELL数组(实现列表)
    3. -------------
    4. # family=(aaa bbb ccc) <--- 定义数组
    5. # echo ${#family[*]} <--- 取数组里变量长度
    6. 3
    7. # echo ${family[0]} <--- 取数组第一个变量
    8. aaa
    9. # echo ${family[1]} <--- 取数组第二个变量
    10. bbb
    11. # echo ${family[2]} <--- 取数组第三个变量
    12. ccc
    13. # echo ${family[*]} <--- 取数组里所有变量
    14. aaa bbb ccc
    15. # echo ${family[*]:2} <--- 去掉数组里的前两个值,保持取最后一个值
    16. ccc
    17. 脚本示例:
    18. # vim test.sh
    19. #!/bin/bash
    20. family=( # or 也可以这样定义 family=(aaa bbb ccc)
    21. aaa
    22. bbb
    23. ccc
    24. )
    25. for name in ${family[*]} #第一种方法,常规for循环取值的方式
    26. do
    27. echo $name
    28. done
    29. echo "================="
    30. for ((name=0;name<${#family[*]};name++)) #第二种方法
    31. do
    32. echo ${family[name]}
    33. done
    34. 执行结果:
    35. [root@nfs-server scripts]# bash test.sh
    36. aaa
    37. bbb
    38. ccc
    39. =================
    40. aaa
    41. bbb
    42. ccc
    43. 实现"字典":
    44. my_config=(
    45. shanghai+http://10.0.1.201+boge+devops1
    46. beijing+http://10.0.1.202+boge+devops2
    47. hongkong+http://10.0.1.203+boge+devops3
    48. )
    49. for r in `echo ${regions}`
    50. do
    51. export MY_REGION=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $1}'`
    52. export MY_URL=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $2}'`
    53. export MY_USERNAME=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $3}'`
    54. export MY_PASSWORD=`echo ${my_config[@]}|tr " " "\n"|grep -w $r|awk -F+ '{print $4}'`
    55. echo "====== $r START ======"
    56. echo $MY_URL
    57. echo $MY_USERNAME
    58. echo $MY_PASSWORD
    59. echo $MY_REGION
    60. echo "====== $r END ======"
    61. done
    62. # 另外一种实现字典的形式
    63. #!/bin/bash
    64. test='
    65. {
    66. "aaa": 1,
    67. "bbb": 2,
    68. "ccc": 3
    69. }
    70. '
    71. echo $test|jq -r ".aaa"
  • 相关阅读:
    CodeForces - 245B Internet Address
    正点原子嵌入式linux驱动开发——TF-A初探
    【GAMES202】A Glimpse of Industrial Solution—实时渲染中常用的工业界技术
    一下明白@GetMapping、@PostMapping、@PutMapping、@DeleteMapping注解
    注意了!申请流量卡时地址一定不要填写学校,不好下卡哦!
    Docker实践笔记7:构建MySQL 8镜像
    数组——有序数组的平方
    谈一个谈这几个月的收获
    改进的PSO-BP算法在工业机器人末端位姿误差补偿中的应用
    面试问题记录一 --- C++(Qt方向)
  • 原文地址:https://blog.csdn.net/qq_21305943/article/details/133783192
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号