Shell 字符串
来源:互联网 发布:centos 格式化硬盘 编辑:程序博客网 时间:2024/05/17 02:44
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似,输出语句echo和PHP也挺像。
单引号
str='this is a string'
单引号字符串的限制:
- 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
- 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
双引号
your_name='qinjx'str="Hello, I know your are \"$your_name\"! \n"
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转
反引号
反引号用于将系统命令的输出到变量
字符串的值
拼接字符串
your_name="abc"greeting="hello, "$your_name" !"greeting_1="hello, ${your_name} !"echo $greeting $greeting_1
获取字符串长度
string="abcd"echo ${#string} #输出 4
查找子字符串
查找字符 “i 或 s” 的位置:
string="runoob is a great company"echo `expr index "$string" is` # 输出 8 "`" 是反引号,而不是单引号 "'"
字符串截取
假设有变量 var=http://blog.csdn.net/Liveor_Die
1. # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :blog.csdn.net/Liveor_Die
2. ## 号截取,删除左边字符,保留右边字符。
echo ${var##*/} # #、## 表示从左边开始删除。一个 # 表示从左边删除到第一个指定的字符;两个 # 表示从左边删除到从右边第一个/及左边的所有字符。
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除http://blog.csdn.net/
结果是Liveor_Die
3. %号截取,删除右边字符,保留左边字符
echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://blog.csdn.net
4. %% 号截取,删除右边字符,保留左边字符
echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:
5. 从左边第几个字符开始,及字符的个数
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
6. 从左边第几个字符开始,一直到结束。
echo ${var:7}
其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :blog.csdn.net/Liveor_Die
7. 从右边第几个字符开始,及字符的个数
echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:ero
8. 从右边第几个字符开始,一直到结束。
echo ${var:0-7}
表示从右边第七个字符开始,一直到结束。
结果是:eor_Die
注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)
字符串替换
用replace替换字符串中的子串substring
格式:${str/substring/replace}或者${str//substring/replace}
替换字符串中第一个abc
echo ${str/abc/TEST} echo ${str/abc/TEST}
替换字符串中所有的abc
echo ${str//abc/TEST}
从str开头匹配,用TEST替换最长的a*c
echo ${str/#a*c/TEST}
从str结尾匹配,用TEST替换最长的b*l
echo ${str/%b*l/TEST}
expr操作字符串
对于上面的一些操作,如果改用expr执行,能简化一些。
str='hello world!' #求字符串长度 length=`expr length $str` echo $length #截取字符串 substr=`expr substr $str 1 4` echo $substr #求字符串中元素的下标索引,如果元素不存在输出0(因为此时索引从1开始) index=`expr index $str "l"` echo $index
- shell 字符串
- shell 字符串
- Shell字符串
- Shell字符串
- Shell字符串
- Shell字符串
- Shell字符串
- Shell字符串
- Shell字符串
- Shell字符串
- shell字符串
- Shell字符串
- Shell字符串
- Shell 字符串
- Shell 学习11 - Shell 字符串
- shell字符串之偷梁换柱
- shell 字符串操作小结
- shell处理字符串记录
- HDU P1002 A + B Problem II
- An introduction to smoothing--forcked from matthew-brett
- Aerospike insert、drop、read和emigrate加锁及引用计数流程
- 算法模板——线段树
- 对象扩展
- Shell 字符串
- CSS(九)
- linux安装svn
- win7端口号被占用Address already in use bind 解决方案
- Programming Scala, 2nd Edition.pdf 英文原版 免费下载
- CSS(十)
- 12.2日作业
- 学班工作
- OpenCV 颜色空间转换参数CV_BGR2GRAY改变