ZhiBing's blog(码上看世界) ZhiBing's blog(码上看世界)
首页
  • Linux工具链

    • shell命令
  • 构建

    • CMake
    • Makefile
  • 版本管理

    • Git
    • Github
  • IDE及工具

    • vscode
    • CLion
  • 设计模式

    • 设计原则
  • 编程语言

    • C++
    • Go
    • Python
    • Shell
  • 调试

    • gdb
  • 开发者测试

    • gtest
  • 系统支撑

    • 操作系统
  • 性能优化

    • 编译优化选项
    • perf
    • valgrind
  • 容器

    • Docker
  • 微服务

    • Rancher
  • 其他
  • 随笔
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

ZhiBing Zheng

时间会回答成长
首页
  • Linux工具链

    • shell命令
  • 构建

    • CMake
    • Makefile
  • 版本管理

    • Git
    • Github
  • IDE及工具

    • vscode
    • CLion
  • 设计模式

    • 设计原则
  • 编程语言

    • C++
    • Go
    • Python
    • Shell
  • 调试

    • gdb
  • 开发者测试

    • gtest
  • 系统支撑

    • 操作系统
  • 性能优化

    • 编译优化选项
    • perf
    • valgrind
  • 容器

    • Docker
  • 微服务

    • Rancher
  • 其他
  • 随笔
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • 编程语言

    • C++

    • Go

    • Python

    • shell

      • shell脚本中数组作为参数传递
      • shell批量替换文件名
      • shell统计文件数量
      • shell脚本获取进程pid
      • shell脚本判断文件后缀
      • shell脚本中调用expect
    • Rust

  • 调试

  • 开发者测试

  • 系统支撑

  • 性能优化

  • 通用领域
  • 编程语言
  • shell
zhengzhibing
2022-06-15

shell脚本中数组作为参数传递

# shell 脚本中数组作为参数传递

在 shell 脚本中将数组作为参数传递给函数或者其它脚本,遇到的最大的问题是如何将存着字符串(中间包含空格的字符串)的数组正确传递并解析。方法如下:

arr_1=(1 2 3 4 5)
arr_2=(how are you)
arr_3=("hello world" "hi shell" "oh my god")

function GetStr() {
    # 加括号是为了将传入的参数重新组织成数组
    arr=("$@")
    echo "arr len: ${#arr[*]}"
    for i in "${arr[@]}"; do
        echo $i
    done
}

GetStr "${arr_1[@]}"
GetStr "${arr_2[@]}"
GetStr "${arr_3[@]}"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

结果如下:

PS:

$@: 将每个参数都看作单独的单词 $*: 将所有参数看作一个单词

#shell
上次更新: 2022/06/17, 07:22:19
requirements.txt文件
shell批量替换文件名

← requirements.txt文件 shell批量替换文件名→

最近更新
01
HPE gen10 plus 安装ESXI 7
06-12
02
ESXI 7安装黑群晖
06-12
03
ESXI 7安装win10
06-12
更多文章>
Theme by Vdoing | Copyright © 2022-2024 ZhBing Zheng | 粤ICP备2022062743号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式