shell学习。一些基本的知识。

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

猜你喜欢

转载自blog.csdn.net/qq_37347705/article/details/78349892