linux将Bash数组的元素连接为分隔符分隔的字符串

 

001、 方法1

复制代码
[root@pc1 test]# ls
test.sh
[root@pc1 test]# cat test.sh          ## 测试程序
#!/bin/bash

function join_by {                    ## 定义函数
  local IFS="$1"                      ## IFS定义输入分隔符, 其中local关键字限制变量的作用域为函数的内部
  shift                               ## shift表示位移
  echo "$*"                           ## $*是shell脚本内部变量,用于表示shell脚本的所有参数
}

FOO=(a b c)                           ## 定义序列数组
join_by , "${FOO[@]}"                 ## 调用函数,第一个参数为,号, 第二个参数为序列数组FOO的作用元素值
[root@pc1 test]# bash test.sh         ## 程序输出结果
a,b,c
复制代码

 

可以利用上面的函数将数组的元素使用不同的分隔符进行连接, 如下:

复制代码
[root@pc1 test]# ls
test.sh
[root@pc1 test]# cat test.sh         ## 测试函数
#!/bin/bash

function join_by {
  local IFS="$1"
  shift
  echo "$*"
}

FOO=(a b c)
join_by - "${FOO[@]}"               ## 这里函数调用的时候,第一个参数为-号,也就是输入分隔符
[root@pc1 test]# bash test.sh       ## 执行程序
a-b-c
复制代码

 

002、 方法2

复制代码
[root@pc1 test]# ls
test.sh
[root@pc1 test]# cat test.sh           ## 测试程序
#!/bin/bash

foo=(a b c)                            ## 定义数组
bar=$(printf ",%s" "${foo[@]}")        ## 利用printf函数格式化功能,在数组的每一个元素前增加,号
bar=${bar:1}                           ## 利用字符串切片,去掉开头的,号

echo $bar                              ## 输出连接后的字符串
[root@pc1 test]# bash test.sh
a,b,c
复制代码

 

 

参考:

01、https://mp.weixin.qq.com/s?__biz=Mzg4ODA5NDEwNw==&mid=2247484258&idx=1&sn=f0ed7fc66f88b8e3fa525fc625397da6&chksm=cf812f96f8f6a68092f86e76e0647e9a8846489f14b9ae4fd8a8ba4754d46467f6904f728205&mpshare=1&scene=23&srcid=1105JuuwIOvnyDXywQpU12wQ&sharer_shareinfo=08a4e37eb87ef12d6289032dbd2e765c&sharer_shareinfo_first=08a4e37eb87ef12d6289032dbd2e765c#rd

posted @   小鲨鱼2018  阅读(167)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-11-05 could not find function "read_excel"
2021-11-05 R语言中计算几何平均数
2021-11-05 R语言中计算变异系数
2021-11-05 R语言中统计频数分布
2020-11-05 什么是端口?
2020-11-05 linux系统中防火墙管理工具iptables
2020-11-05 linux系统中nmcli命令、查看、添加、删除、编辑网络会话
点击右上角即可分享
微信分享提示