Shell| 流程控制语句(if)和判断逻辑的几种写法(是否省略test)
2018-03-03 13:22
791 查看
一.流程控制的几种写法
这里同一采用的的是将then和条件放在一行处理,具体讲解可以看第二点
判断逻辑的几种写法控制逻辑的结束以
fi结束.
①只有逻辑
if 条件一 ; then 命令一 fi
②1/0的逻辑
if 条件一 ; then 命令一 else 命令二 fi
③多条件逻辑
if 条件一 ; then 命令一 elif 条件二 ; then 命令二 elif 条件三 ; then 命令三 else 命令四 fi
综合例子:
#! /bin/bash echo 'input num1 and num2:' #从控制台获取两个值,将值赋给变量num1和num2 read num1 num2 if [ $num1 -eq $num2 ] ; then echo 'num1 = num2' elif [ $num1 -gt $num2 ] ; then echo 'num1 > num2' else echo 'num1 < num2' fi
运行结果:
按照提示
input num1 and num2:输入的变量格式一定要有2个,否则会报错.
[root@yveshe ~]# [root@yveshe ~]# ./numTest.sh input num1 and num2: 2 1 num1 > num2 [root@yveshe ~]#
二.判断逻辑的几种写法
这里以流程控制语句中的相对较简单的流程以及判断两个数值为例子来来讲解判断逻辑的几种写法.
1.传统逻辑写法:
使用test来判断,判断格式为test 测试条件
#! /bin/bash num1=1 num2=2 if test $num1 -eq $num2 then echo 'num1 = num2' else echo 'num1 != num2' fi
结果:
[root@yveshe ~]# ./numTest.sh num1 != num2
2.省略test写法
判断格式是在test的基础上省略了test然后加上了
[],格式为
[ 测试条件 ]但是要特别注意的是
[]和条件之间一定要有空格,否则会报错
command not found.
#! /bin/bash num1=1 num2=2 if [ $num1 -eq $num2 ] then echo 'num1=num2' else echo 'num1!=num2' fi
测试结果:
[root@yveshe ~]# ./numTest.sh num1 != num2
3.将then关键字和if判断条件放在同一行
说明:将多要执行语句放放在同一行只需要在每条语句结尾添加;既可.这里是将then语句放在了
if [ $num1 -eq $num2 ]之后.
#! /bin/bash num1=1 num2=2 if [ $num1 -eq $num2 ] ; then echo 'num1 = num2' else echo 'num1 != num2' fi
甚至 可以将所有的命令写在一行
if [ $num1 -eq $num2 ] ; then echo 'num1=num2'; else echo 'num1!=num2'; fi.具体的
;在shell中的使用以及
$$使用可以参考
Shell| 关于;和&&以及命令换行在shell中的区别
结果:
[root@yveshe ~]# ./numTest.sh num1 != num2
三 数值判断,字符串判断,文件判断
关于值判断,字符串判断,文件判断的判断条件格式参考 Shell| Test命令和判断条件格式相关文章推荐
- shell流程控制语句之一if判断
- shell-6-退出状态与流程控制语句(if;test;case命令)
- shell脚本之-if流程控制语句和for循环语句的使用
- [Shell] if、for、while流程语句以及整数字符串判断比较的实例详解
- 控制流程语句之顺序语句、if判断语句、键盘录入、switch选择判断语句
- shell脚本中if流程控制语句的应用
- shell脚本中if流程控制语句的应用
- shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句
- shell基础及流程控制语句之一case判断
- shell逻辑控制语句之if
- Linux学习之Shell--第三天:Shell流程控制-if语句
- java控制流程语句之(if)判断语句
- [Shell] if、for、while流程语句以及整数字符串判断比较的实例详解
- 【重点】Shell入门教程:流程控制(2)条件判断的写法
- [Shell]条件判断与流程控制:if, case, for, while, until
- Python中的流程控制--if判断语句
- Shell学习笔记(8)-流程控制之IF语句
- C#入门篇5-1:流程控制语句 if判断语句
- Linux的Shell脚本中IF流程控制语句的基本语法
- Linux学习之Shell--第三天:Shell流程控制-if语句