页面“Mysql8源码安装”与“Shell数组”之间的差异
(页面间的差异)
跳到导航
跳到搜索
小 (导入1个版本) |
docker>Evan |
||
第1行: | 第1行: | ||
− | = | + | ==1定义== |
− | + | <pre>直接用圆括号包数组元素包起来,数组元素之间用空格隔开就行了,bash支持一维数组(不支持多维数组) | |
+ | 定义数组的一般形式为: | ||
+ | array_name=(value1 ... valuen) | ||
+ | 或者 | ||
+ | array_name=( | ||
+ | value0 | ||
+ | value1 | ||
+ | value2 | ||
+ | value3 | ||
+ | ) | ||
− | |||
− | + | evan@evanpc:~$ a=(1 2 3 4 5 ) | |
+ | evan@evanpc:~$ echo $a | ||
+ | </pre> | ||
− | [[category: | + | ==2.数组读取与赋值== |
+ | <pre> | ||
+ | 数组长度 | ||
+ | 用${#数组名[@或*]} 可以得到数组长度 | ||
+ | evan@evanpc:~$ echo ${#a[@]} | ||
+ | 5 | ||
+ | |||
+ | 读取: | ||
+ | |||
+ | 用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容 | ||
+ | |||
+ | |||
+ | evan@evanpc:~$ echo ${a[0]} | ||
+ | 1 | ||
+ | evan@evanpc:~$ echo ${a[2]} | ||
+ | 3 | ||
+ | evan@evanpc:~$ echo ${a[*]} | ||
+ | 1 2 3 4 5 | ||
+ | |||
+ | |||
+ | 赋值: | ||
+ | 直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素 | ||
+ | |||
+ | |||
+ | evan@evanpc:~$ a[1]=100 | ||
+ | evan@evanpc:~$ echo ${a[*]} | ||
+ | 1 100 3 4 5 | ||
+ | evan@evanpc:~$ a[6]=100 | ||
+ | evan@evanpc:~$ echo ${a[*]} | ||
+ | 1 100 3 4 5 100 | ||
+ | |||
+ | 删除: | ||
+ | 直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。 | ||
+ | |||
+ | evan@evanpc:~$ a=(1 2 3 4 5 ) | ||
+ | evan@evanpc:~$ unset a | ||
+ | evan@evanpc:~$ echo ${a[*]} | ||
+ | |||
+ | evan@evanpc:~$ a=(1 2 3 4 5 ) | ||
+ | evan@evanpc:~$ unset a[1] | ||
+ | evan@evanpc:~$ echo ${a[*]} | ||
+ | 1 3 4 5 | ||
+ | evan@evanpc:~$ echo ${#a[*]} | ||
+ | 4 | ||
+ | </pre> | ||
+ | ==3.特殊使用== | ||
+ | <pre> | ||
+ | 分片: | ||
+ | 直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,下面例子:c 就是一个新数据。 | ||
+ | |||
+ | evan@evanpc:~$ a=(1 2 3 4 5 ) | ||
+ | |||
+ | #从0 也就是第一个元素开始,切出3个元素 | ||
+ | evan@evanpc:~$ echo ${a[@]:0:3} | ||
+ | 1 2 3 | ||
+ | |||
+ | evan@evanpc:~$ echo ${a[@]:1:4} | ||
+ | 2 3 4 5 | ||
+ | |||
+ | evan@evanpc:~$ c=(${a[@]:1:4}) | ||
+ | evan@evanpc:~$ echo ${#c[@]} | ||
+ | 4 | ||
+ | evan@evanpc:~$ echo ${c[*]} | ||
+ | 2 3 4 5 | ||
+ | |||
+ | |||
+ | 替换: | ||
+ | 调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。 | ||
+ | |||
+ | evan@evanpc:~$ a=(1 2 3 4 5 ) | ||
+ | evan@evanpc:~$ echo ${a[@]/3/100} | ||
+ | 1 2 100 4 5 | ||
+ | evan@evanpc:~$ echo ${a[@]} | ||
+ | 1 2 3 4 5 | ||
+ | |||
+ | evan@evanpc:~$ a=(${a[@]/5/500}) | ||
+ | evan@evanpc:~$ echo ${a[@]} | ||
+ | 1 2 3 4 500 | ||
+ | evan@evanpc:~$ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 数组的遍历 | ||
+ | |||
+ | for data in ${array[@]} | ||
+ | do | ||
+ | echo ${data} | ||
+ | done | ||
+ | |||
+ | |||
+ | tar czf ${codefilename} ${baklist_www[@]:0} 2>/dev/null | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | |||
+ | |||
+ | http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html | ||
+ | http://www.tldp.org/LDP/abs/html/ | ||
+ | http://c.biancheng.net/cpp/view/7002.html | ||
+ | |||
+ | Shell 数组元素个数${#array[@]} 数组的所有元素${array[*]} 字符串长度${#str} | ||
+ | http://zhenshi4597.blog.51cto.com/1891465/871166 | ||
+ | |||
+ | [shell] shell数组(array)常用技巧学习实践(数据库备份脚本) | ||
+ | http://bbs.linuxtone.org/thread-5317-1-1.html | ||
+ | [[category:shell]] |
2017年2月14日 (二) 06:45的版本
1定义
直接用圆括号包数组元素包起来,数组元素之间用空格隔开就行了,bash支持一维数组(不支持多维数组) 定义数组的一般形式为: array_name=(value1 ... valuen) 或者 array_name=( value0 value1 value2 value3 ) evan@evanpc:~$ a=(1 2 3 4 5 ) evan@evanpc:~$ echo $a
2.数组读取与赋值
数组长度 用${#数组名[@或*]} 可以得到数组长度 evan@evanpc:~$ echo ${#a[@]} 5 读取: 用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容 evan@evanpc:~$ echo ${a[0]} 1 evan@evanpc:~$ echo ${a[2]} 3 evan@evanpc:~$ echo ${a[*]} 1 2 3 4 5 赋值: 直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素 evan@evanpc:~$ a[1]=100 evan@evanpc:~$ echo ${a[*]} 1 100 3 4 5 evan@evanpc:~$ a[6]=100 evan@evanpc:~$ echo ${a[*]} 1 100 3 4 5 100 删除: 直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。 evan@evanpc:~$ a=(1 2 3 4 5 ) evan@evanpc:~$ unset a evan@evanpc:~$ echo ${a[*]} evan@evanpc:~$ a=(1 2 3 4 5 ) evan@evanpc:~$ unset a[1] evan@evanpc:~$ echo ${a[*]} 1 3 4 5 evan@evanpc:~$ echo ${#a[*]} 4
3.特殊使用
分片: 直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,下面例子:c 就是一个新数据。 evan@evanpc:~$ a=(1 2 3 4 5 ) #从0 也就是第一个元素开始,切出3个元素 evan@evanpc:~$ echo ${a[@]:0:3} 1 2 3 evan@evanpc:~$ echo ${a[@]:1:4} 2 3 4 5 evan@evanpc:~$ c=(${a[@]:1:4}) evan@evanpc:~$ echo ${#c[@]} 4 evan@evanpc:~$ echo ${c[*]} 2 3 4 5 替换: 调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。 evan@evanpc:~$ a=(1 2 3 4 5 ) evan@evanpc:~$ echo ${a[@]/3/100} 1 2 100 4 5 evan@evanpc:~$ echo ${a[@]} 1 2 3 4 5 evan@evanpc:~$ a=(${a[@]/5/500}) evan@evanpc:~$ echo ${a[@]} 1 2 3 4 500 evan@evanpc:~$ 数组的遍历 for data in ${array[@]} do echo ${data} done tar czf ${codefilename} ${baklist_www[@]:0} 2>/dev/null
http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html http://www.tldp.org/LDP/abs/html/ http://c.biancheng.net/cpp/view/7002.html
Shell 数组元素个数${#array[@]} 数组的所有元素${array[*]} 字符串长度${#str} http://zhenshi4597.blog.51cto.com/1891465/871166
[shell] shell数组(array)常用技巧学习实践(数据库备份脚本) http://bbs.linuxtone.org/thread-5317-1-1.html