0.read命令
这个命令是读取输入。
- #! /bin/bash
-
- read mystr
-
- echo $mtstr
输入 hello world!
输出 hello world!
1.条件
test 或者 [
注意:test和 [ 后面都需要有一个空格
前提知识 if语句
- if 条件语句
- then
- 表达式
- fi
shell比较有三种类型
(1).字符串的比较
str1 != str2 不等于
str1 = str2 等于
-n str1 不为空
-z str1 字符串为空
(2).数字的比较
num1 -eq num2 等于
num1 -ne num2 不等于
num1 -gt num2 大于
num1 -ge num2 大于等于
num1 -lt num2 小于
num1 -le num2 小于等于
! num1 取反
(3).文件测试
-d file file是文件
-f file file文件存在
-r file
-w file
-x file
案例1:比较字符串的大小
- #! /bin/bash
-
- echo "请输入数字字符串"
- read mystr
- if test mystr = "123"
- then
- echo "mystr = 123"
- fi
- exit 0
输入一行数字,如果输入123,则输出:mystr = 123;否者没有输出
案例2.比较数字的大小
- #! /bin/bash
-
- echo "输入数字"
- read mynum
-
- if [ $mynum -gt 10 ]
- then
- echo "$mynum > 10"
- fi
-
- exit 0
这个案例是比较输入数字与10的大小,如果输入的数字大于10,则输出mynum > 10
比如输入 99,则输出 99 > 10
比较两个案例,我们可以看出test和[是一样的作用
2.选择结构
(1).if语句
- if 条件语句
- then
- 表达式
- fi
if后面要跟一个then,每一个选择语句的结束,都需要fi结尾
(2)if...else...语言
- if 条件
- then
- 表达式1
- else
- 表达式2
- fi
如果条件为真,则执行表达式1,否则执行表达式2
案例:
- #! /bin/bash
-
- num1=10
- num2=20
-
- if [ $num1 -eq $num2 ]
- then
- echo "$num1 = $num2"
- else
- echo "$num1 != $num2"
- fi
- exit 0
num1小于num2,因此会输出 10 != 20
(3).多项选择elif
-
- if 条件1
- then
- 表达式1
- elif 条件2
- then
- 表达式2
- elif 条件3; then
- 表达式3
- else
- 表达式4
- fi
-
- %ps then可以接在条件后面,不过需要用;隔开
在使用判断语句的时候,等号两边必须要有空格
if和elif后面都需要有一个then
- #! /bin/bash
-
- num=10
- if [ $num -gt 20 ]; then
- echo "$num > 20"
- elif [ $num -gt 15 ]; then
- echo "$num > 15"
- else
- echo "$num 太小"
- fi
- exit 0