数组 – 如何在bash中切割数组
发布时间:2020-12-15 16:55:11 所属栏目:安全 来源:网络整理
导读:(编辑适合答案) 查看bash(1)手册页中的“Array”部分,我没有找到一种方法来切割bash数组。 所以我想出了这个过于复杂的功能: #!/bin/bash# @brief: slice a bash array# @arg1: output-name# @arg2: input-name# @args: seq args# -----------------------
(编辑适合答案)
查看bash(1)手册页中的“Array”部分,我没有找到一种方法来切割bash数组。 所以我想出了这个过于复杂的功能: #!/bin/bash # @brief: slice a bash array # @arg1: output-name # @arg2: input-name # @args: seq args # ---------------------------------------------- function slice() { local output=$1 local input=$2 shift 2 local indexes=$(seq $*) local -i i local tmp=$(for i in $indexes do echo "$(eval echo "${$input[$i]}")" done) local IFS=$'n' eval $output="( $tmp )" } 使用像这样: $ A=( foo bar "a b c" 42 ) $ slice B A 1 2 $ echo "${B[0]}" # bar $ echo "${B[1]}" # a b c 有更好的方法吗?
请参见Bash手册页中的
Parameter Expansion部分。 A [@]返回数组的内容,:1:2采用长度为2的切片,从索引1开始。
A=( foo bar "a b c" 42 ) B=("${A[@]:1:2}") C=("${A[@]:1}") # slice to the end of the array echo "${B[@]}" # bar a b c echo "${B[1]}" # a b c echo "${C[@]}" # bar a b c 42 注意,“a b c”是一个数组元素(并且它包含额外的空间)的事实被保留。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- AngularJS 世界------Angularjs和Javascript以及表达式相关
- Yum安装LAMP(Centos7.2+Apache2.4+Mariadb5.5.56+PHP7.0.24
- properties – 获取元素高度
- 检查是否从bash脚本安装了ruby gem
- Angular2 Http请求如何将body作为二进制返回?
- 制作 shell 脚本压缩 Android 8.0代码
- 【软件周刊第 41 期】模板引擎 Velocity Engine 发布 2.0 版
- scala – 使用子类参数覆盖子类方法?
- 下划线_.range()在AngularJS ng重复中不起作用
- webServices