Linux Shell编程学习笔记(2015-7-20)
分类:linux shell
今天学习了Linux Shell中的控制结构。其实大多数语言的控制结构这一块都是基本类似的,有了C语言的基础之后,对于shell中的控制结构是可以很快掌握的。
一:条件测试
在C语言中无论是while,do…while,for这些控制语句里都含有条件测试语句。可以说在控制开始或者控制过程中条件测试都是必不可少的部分。
1.test命令
条件测试命令test用于评估表达式的值以便进行条件控制。test命令有两种书写格式。分别如下:
test 表达式
或者
[ 表达式 ]
test命令评估表达式参数,如果表达式的值为真,其退出状态为0(成功),否则退出状态为1(失败)。
注意:使用方括号时,“[”右边和“]”左边各需要至少一个空格。
比如:
biantiao@lazybone1994-ThinkPad-E430:~$ cd sh
biantiao@lazybone1994-ThinkPad-E430:~/sh$ test "3" \> "2" ; echo $?
0
biantiao@lazybone1994-ThinkPad-E430:~/sh$ test "2" \> "3" ; echo $?
1
biantiao@lazybone1994-ThinkPad-E430:~/sh$
test命令可以和多种系统运算符一起使用。这些运算符可以分成4类:文件属性测试运算符,字符串测试运算符,数值测试运算符和逻辑测试运算符。至于这些具体的测试运算符是没有必要去记忆的,在实际的编程中遇到了直接去查阅手册就好了。
2.let命令
test命令很强大,但只能执行算术比较运算且书写繁琐,为此,bash提供了专门执行整数算术运算的let命令,其语法格式为:
let 算术表达式..
或者
((算术表达式))
如果算术表达式求值为0,则设置退出状态为1;如果求值为0值,则退出状态为0。比如:
biantiao@lazybone1994-ThinkPad-E430:~$ let x=2 y=2**3 z=y*3 ; echo $? $x $y $z
0 2 8 24
biantiao@lazybone1994-ThinkPad-E430:~$let x=8%2 ; echo $? $x
1 0
let命令除了提供了基本的算术运算符外,它还提供了几个C语言中没有的运算符如下表所示:
注明:因为按位或的符号在Markdown中无法被转义,故用的中文来说明。感觉自己好low啊! o(╯□╰)o 如果谁有好的办法还请告知我,感激不尽!
运算符 | 功能 |
---|---|
! | 逻辑非 |
~ | 按位取反 |
& | 按位与 |
^ | 按位异或 |
就是一条竖线 | 按位或 |
技巧:
- 使用(())形式时,即使表达式中有shell的特殊字符,也不必用双引号将其括起来。比如: