shell第二课 选择结构

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

你可能感兴趣的:(开发语言,bash)