shell script 学习笔记-----if,for,while,case语句,-----ifcase


1、if内的判断条件为逻辑运算:

2、if内的判断条件为目录是否存在,文件是否存在,下图先检验目录/home/monster是否存在,然后再检测/home/monster中的file.txt文件是否存在,这里需要注意的是在进行文件目录是否存在一类的判断时,只能使用"[]"括号。“()”括号一般仅用于算数运算。当然,在一个if中可以存在多个判断条件,用-a(与)或者-o(或)连起来,不过这里需要特别注意的是,shell和C/C++,JAVA是不同的,它在一个if中的所有判断条件都会执行到,而不是像C语言里,如果两个判断条件相与,第一个条件错了,那么第二个条件便不再执行。因此对于shell应该特别小心,避免不必要的错误

3、相等的判断,这里需要注意的是,若比较符号为"-eq"则为算数比较,若为“=”或者“==”则比较两个字符是否相同,如下所示:

4、while循环的使用如下图所示,当判断条件用"(( ))"围起来的时候,里面可以进行算数逻辑判断,如果判断文件是否存在之类则需要使用"[ ]",当然while之后也能跟命令进行判断。这里需要注意的是,如果while后面跟命令进行判断,则命令执行返回的结果非零则跳出循环,而"(( ))"的判断条件是为零跳出循环。因此,想要程序无限循环,则使用语句while (( 1 ))...即可

5、shell里面的for循环如下图所示,显然,和C语言的表示方式差不多,不过是单括号变成了双括号而已

6、浮点数的for循环,其实和整数类似,不过是起点,终点,累加值都变为浮点数而已,其中seq每隔0.1产生一个新的数字,占据一行,然后fp依次从中取数

7、shell里面的case语句相当于C语言中的switch语句,需要注意的是,shell中用两个分号表示break语句,而且default语句用通配符“*"表示。当然,和switch一样,没有双分号,则程序会继续往下执行而不是自动跳出

相关内容