Shell编程(三)---字符串、数组
来源:互联网 发布:洛煌笈淘宝 编辑:程序博客网 时间:2024/06/04 18:25
转载自:Linux Shell脚本教程:30分钟玩转Shell脚本编程,只用于自己学习Shell编程。
Shell字符串
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。
单引号
str='this is a string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号
your_name='qinjx'str="Hello, I know your are \"$your_name\"! \n"
输出结果:
Hello, I know your are "qinjx"!
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
拼接字符串
your_name="qinjx"greeting="hello, "$your_name" !"greeting_1="hello, ${your_name} !"echo $greeting $greeting_1
输入结果:
hello, qinjx ! hello, qinjx !
获取字符串长度
string="abcd"echo ${#string} #输出 4
提取子字符串
string="alibaba is a great company"echo ${string:1:4} #输出liba
查找子字符串
string="alibaba is a great company"echo `expr index "$string" y`
输出结果为:26
即字符串从1开始,y字符在第26位置上。
数组
Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
定义数组
在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
array_name=(value1 … valuen)
例如:
array_name=(value0 value1 value2 value3)
或者
array_name=(value0value1value2value3)
还可以单独定义数组的各个分量:
array_name[0]=value0array_name[1]=value1array_name[2]=value2
可以不使用连续的下标,而且下标的范围没有限制。
读取数组
读取数组元素值的一般格式是:
${array_name[index]}
例如:
valuen=${array_name[2]}
举个例子:
#!/bin/shNAME[0]="Zara"NAME[1]="Qadir"NAME[2]="Mahnaz"NAME[3]="Ayan"NAME[4]="Daisy"echo "First Index: ${NAME[0]}"echo "Second Index: ${NAME[1]}"
运行脚本,输出:
$./test.shFirst Index: ZaraSecond Index: Qadir
使用@ 或 * 可以获取数组中的所有元素,例如:
${array_name[*]}${array_name[@]}
举个例子:
#!/bin/shNAME[0]="Zara"NAME[1]="Qadir"NAME[2]="Mahnaz"NAME[3]="Ayan"NAME[4]="Daisy"echo "First Method: ${NAME[*]}"echo "Second Method: ${NAME[@]}"
输出结果:
First Method: Zara Qadir Mahnaz Ayan DaisySecond Method: Zara Qadir Mahnaz Ayan Daisy
获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同,例如:
# 取得数组元素的个数length=${#array_name[@]}# 或者length=${#array_name[*]}# 取得数组单个元素的长度lengthn=${#array_name[n]}
1 0
- Shell编程(三)---字符串、数组
- Shell 编程详解之字符串和数组<三>
- Linux下的shell编程(三)--替换,运算符,字符串,数组
- Shell编程之数组、字符串基本操作
- Shell 字符串 数组
- shell编程数组排序
- linux shell编程 数组
- shell编程字符串处理
- Shell编程(4):字符串
- shell编程(三)
- shell编程基础【三】
- shell编程<三> 引用
- shell编程三
- shell编程三~变量
- (三)字符串、向量、数组
- shell 字符串数组的用法
- shell 字符串数组的用法
- shell 数组(字符串下标)
- 语音识别遇到的问题
- 免费《宠物消消乐》休闲游戏,火爆上线啦
- 玩转MySQL之mysql_config_editor工具
- 问题 M: 打印学生的数据记录
- linux 内核编译时出现scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h错误的解决办法
- Shell编程(三)---字符串、数组
- centos安装opencv2.4.9
- python Pandas 读取txt表格
- 40个Java集合面试问题和答案
- C语言第五篇:位运算
- 问题 D: 编程题B-向量的数量积
- 三天打鱼两天晒网 C++ / Java
- C++ 学习建议搜罗
- LoadRunner学习记录-基础篇