【Bash百宝箱】shell数组
来源:互联网 发布:淘宝达人的推广方式 编辑:程序博客网 时间:2024/05/16 05:19
shell支持一维数组,包括普通的使用下标的索引数组和关联的键值对数组,下面以例子说明。
创建一个名为foo的索引数组,三个元素a、bear、123以空格分隔放在圆括号内。
$ foo=(a bear 123)
查看索引数组foo的全部元素(使用特殊符号):
$ echo $fooa$ echo ${foo}a$ echo ${foo[@]}a bear 123 echo ${foo[*]}a bear 123
查看索引数组foo的所有下标:
$ echo ${!foo[@]}0 1 2
查看索引数组foo的元素个数:
$ echo ${#foo[@]}3$ echo ${#foo[*]}3
查看索引数组foo某个位置的元素:
$ echo ${foo[0]}a$ echo ${foo[1]}bear$ echo ${foo[2]}123$ echo ${foo[-1]}123$ echo ${foo[-2]}bear$ echo ${foo[-3]}a
修改索引数组foo某个位置的元素:
$ foo[1]=dog$ echo ${foo[1]}dog$ echo ${foo[@]}a dog 123$ echo ${!foo[@]}0 1 2$ echo ${#foo[@]}3
给索引数组foo添加元素:
$ foo[3]=x$ echo ${foo[3]}x$ echo ${foo[@]}a dog 123 x$ echo ${!foo[@]}0 1 2 4$ echo ${#foo[@]}4$ foo[10]=how$ echo ${foo[10]}how$ echo ${foo[@]}a dog 123 x how$ echo ${!foo[@]}0 1 2 3 10$ echo ${#foo[@]}5
删除索引数组foo某个位置的元素:
$ unset foo[1]$ echo ${foo[@]}a 123 x how$ echo ${!foo[@]}0 2 3 10$ echo ${#foo[@]}4
删除索引数组foo:
unset foo
使用命令declare -A创建一个名为bar的键值对数组,三个键分别为r、green、123,对应的值为red、g、88,格式固定,键放在一对方括号中,用等号进行赋值。
$ declare -A bar=([r]=red [green]=g [123]=88)
下面是对键值对数组bar的一些操作:
$ echo ${bar[@]}g 88 red$ echo ${!bar[@]}green 123 r$ echo ${#bar[@]}3$ echo ${bar[r]}red$ echo ${bar[green]}g$ echo ${bar[123]}88$ bar[123]=99$ bar[x]=app$ echo ${bar[*]}g 99 red app$ echo ${!bar[*]}green 123 r x$ echo ${#bar[*]}4$ unset bar[r]$ echo ${bar[*]}g 99 app$ echo ${!bar[*]}green 123 x$ echo ${#bar[*]}3$ unset bar
1 0
- 【Bash百宝箱】shell数组
- 【Bash百宝箱】shell命令
- 【Bash百宝箱】shell函数
- 【Bash百宝箱】Linux shell学习
- 【Bash百宝箱】shell重定向
- 【Bash百宝箱】shell命令行快捷键大全
- 【Bash百宝箱】shell变量及扩展
- 【Bash百宝箱】shell环境变量有哪些
- 【Bash百宝箱】shell历史命令(history)
- 【Bash百宝箱】Bash简介
- 【Bash百宝箱】shell中如何进行数学运算
- 【Bash百宝箱】shell内建命令之冒号
- 【Bash百宝箱】shell内建命令之句点与source
- 【Bash百宝箱】shell内建命令之break与continue
- 【Bash百宝箱】shell内建命令之cd、getopts
- 【Bash百宝箱】shell内建命令之hash
- 【Bash百宝箱】shell内建命令之times、umask、unset
- 【Bash百宝箱】shell内建命令之test
- hdu4497GCD and LCM+数论
- 数据结构实验之栈三:后缀式求值
- JSP学习笔记
- 关于STM32 使用ARM GCC编译链接C++生成固件的压缩、减少和优化大小的几个编译链接参数
- 自定义一个View作为弹出对话框
- 【Bash百宝箱】shell数组
- Android动画详解
- session共享之nginx+tomcat+redis
- JSTL学习笔记
- TortoiseGit安装与图形界面操作
- Ajax使用FormData对象上传文件
- Log4j学习笔记
- 数据结构实验之栈四:括号匹配
- LeetCode142—Linked List Cycle II