1、shell字符串截取。开始就是从当前算起,字符串左边是开启,右边是结束。
例如:str = "hello, world!";
echo ${str:6}表示的是:world
echo ${str:0-4:5}表示的是:o,wor
echo ${str:0-4}表示:rld!
echo ${str:0-3}表示:hel
echo ${var:5}
截取变量var的值,从左起第6个开始。
echo ${str:0-6:10}
从右边第几个字符开始以及字符的个数,用法:0-start:len
echo ${str:0-4}
从右边第几个字符开始一直到结束,用法:0-start
echo ${var:0:5}
从0开始长度是5,用法:start:len
2、shell中判断
[[$tmp != "NULL" ]] 在写判断的时候,条件右边如果和NULL比较需要带上双引号
if [ -z "$str" ]; then
判断str为空
fi
注:为什么-z判断为空,-n判断是不为空。没找到相关的知识。
if [ -n "$str" ]; then
判断str不为空
fi
3、双中括号和单中括号的区别:
使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。
但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]]
如果不使用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]
bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
4、shell加法
echo -n 不换行输出
echo -e 处理特殊字符串
详细的链接:http://blog.sina.com.cn/s/blog_4da051a6010184uk.html
n=1
echo -n "$n" 带双引号 结果: 1
let "n=$n+1"
echo -n "$n" 2
:$((n = $n+1)) 3
((n = n+1)) 4
:$[n=$n+1] 5
n = $[$n + 1]
let "n++"
((n++))
以上写法都是正确的,都可以进行正常的运算‘’
有需要转载的可以转载。我很欢迎大家传播知识。如果上面有我写错的,也请给与指正。
参考:
http://www.cnblogs.com/zeweiwu/p/5485711.html
http://www.cnblogs.com/blueicely/p/3325796.html