转自:http://blog.csdn.net/linfeng999/article/details/6661233 1. 构造字符串 直接构造 STR_ZERO=hello #shell中等号左右的空格不能随便加,如果写作STR_ZERO = hello,linux会认为STR_ZERO是一个命令而执行出错 STR_FIRST="i am a string" STR_SECOND='success' USER_NAME='world' 重复多次 #repeat the first p…
最近发现使用  -z   和  -n  来判断字符串判空,或不空时,很不靠谱. 使用下面的方法最可靠: if [ "x${value}" == "x" ]              #为空 then #为空处理 fi if [ "x${value}" != "x" ]               #不为空 then #不为空处理 fi 转自 Shell脚本中字符串判空:使用-z 字符串长度为0时,为真,-n字符串长度不为0,为…
SHELL脚本编程-字符串处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符串切片 [root@node101.yinzhengjie.org.cn ~]# echo {A..Z} A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [root@node101.yinzhengjie.org.cn ~]# [root@node101.yinzhengjie.org.cn ~]# echo {A..Z}|tr -d…
简介 昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯. 字符串的定义与赋值 # 定义STR1变量,值为abc STR1 = "abc"(错误写法) STR1="abc"(正确写法) 在编写java代码时会考虑到格式化,往往变量定义时会有一些空格或者换行符等,因此在写shell脚本时也就顺手这么写了,在运行时就会报错:"command not f…
昨天在定位一个bug的时候,需要些shell脚本,用到了字符串的比较,出了一个小问题,就搜索总结了一下. 第一种方法:-eq 对比字符串是否相等,我首先想到的就是 -eq,然而打印的结果不正确.各种echo后,就是字符串对比那里不对,我以为我记错了,还专门看了我记得笔记: , 没错啊,就是-eq啊,括号格式的也都对,但是为什么结果不对呢,百度了一下,才明白怎么回事,原来是-eq只支持整数的比较,而我比较的是字符串,当然不行了. 第二种方法: = 这个就通用了,不管是字符串.整数.小数,都可以比较…
shell脚本的return只能返回数值类型,可是我们很多时候想返回字符串 #!/bin/sh function getStr () { String="very good" echo $String } str=$(getStr) echo $str 结果: very good…
在shell脚本里,将字符串转ASCII码的方法: [keysystem@localhost ~]$ printf "%d" "'A" [keysystem@localhost ~]$ printf "%d" "'0" 在shell脚本里,将字符串转10进制转16进制的方法: [keysystem@localhost ~]$ printf a printf更多用法参考:http://man.linuxde.net/printf…
1.字符串测试操作符 字符串测试操作符的作用有:比较两个字符串是否相同.字符串的长度是否为零,字符串是否为NULL(注:bash区分零长度字符串和空字符串等) 下表为常用字符串操作符 也可以通过man test查看字符串测试操作符 字符串测试操作符提示: (1)-n比较字符串长度是否不为零,如果不为零则为真,如:[ -n "$myvar" ] (2)-z比较字符串长度是否等于零,如果等于零则为真,如:[ -z "$myvar" ] 特别注意:对于以上表格中的字符串测…
http://blog.csdn.net/gumanren/article/details/5601544 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.hao.com/123.htm 一 # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.hao.com/123.htm 二 ## 号截取,删…
Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符. echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个…