Linux while循环、if判断语句

1. while循环的语法格式

while condition(条件)
do
    # command(命令)
done

2.while循环的案例

1.先编辑一个学生信息的表文件

[root@sc chong]# cat student.txt 
qilin male 20
wangxin male 18
hejin female 18

2.编写脚本去处理student.txt文件

[root@sc chong]# cat while.sh 
#!/bin/bash

# name sex age 是变量,用来存放读取student.txt文件里的一行的数据
while read name sex age
do
    echo "姓名是:$name,性别是:$sex,年龄是:$age"

done < student.txt

3.执行脚本

[root@sc chong]# bash while.sh 
姓名是:qilin,性别是:male,年龄是:20
姓名是:wangxin,性别是:male,年龄是:18
姓名是:hejin,性别是:female,年龄是:18

4.增加age判断

[root@sc chong]# cat while.sh 
#!/bin/bash

# name sex age 是变量,用来存放读取student.txt文件里的一行的数据
while read name sex age
do
    if (( $age > 19 ));then
        echo "大于19岁的人的信息:姓名是:$name,性别是:$sex,年龄是:$age"
    else
        echo "小于19岁的人的信息:姓名是:$name,性别是:$sex,年龄是:$age"
    fi

done < student.txt

[root@sc chong]# bash while.sh 
大于19岁的人的信息:姓名是:qilin,性别是:male,年龄是:20
小于19岁的人的信息:姓名是:wangxin,性别是:male,年龄是:18
小于19岁的人的信息:姓名是:hejin,性别是:female,年龄是:18

# ; 是命令连接符号,用来在一行里输入多条命令

if语句的语法格式

# 单分支 --》1种情况
if condition(条件);then
    # command(命令)
fi

# 双分支 --》就是2种情况
if condition ;then
	# command
else
	# command
fi

# 多分支 --》多种情况
if condition ;then
	# command
elif condition ;then
	# command
elif condition ;then
	# command
else
	# command 
fi


# 条件成立(满足)就执行命令,如果条件不成立就不执行命令

# 条件是一个命令也可以是一个表达式(公式)

双圆括号主要用于整数的计算和比较

(( 数值的计算和比较使用的 ))
(( 8+9 ))
(( 8>7 ))

if判断语句的案例

[root@sc chong]# cat if.sh 
#!/bin/bash

# 单分支 --》就是一种情况
age=3
if (( $age > 18 ));then
	echo "你是成年人"
fi

age=2
if (( $age > 18 ))
then
	echo "你是成年人"
fi

# 双分支 --》就是2种情况
age=16
if (( $age > 18 ));then
	echo "你是成年人"
else
	echo "你是未成年人"
fi

# 多分支 --》多种情况
age=5
if (( $age > 60 ));then
	echo "老年人"
elif ((  $age >=18 && $age < 30 ));then
	echo "中年人"
elif (( $age >= 30 && $age < 60 ));then
	echo "中年人"
else
	echo "少年" 
fi

# 条件从第1个开始匹配,依次类推,如果第1个满足后就不会再看后面的条件了,只有不满足才看后面的条件
# if语句从上而下依次执行
# && 是与符号,两边的条件都要满足,都要执行成功

/dev/null  null设备文件(空设备文件)作用:任何内容重定向到此文件都会消失,不保存
因为脚本在执行的过程中有些内容,不想看到也不想保存去浪费磁盘的空间

[root@sc ~]# id u &>/dev/null
&> 正确和错误输出重定向
重定向到/dev/null不会影响命令的返回值

[root@sc ~]# id u &>/dev/null
[root@sc ~]# echo $?
1

[root@sc ~]# sfhso
-bash: sfhso: 未找到命令
[root@sc ~]# echo $?
127

[root@sc ~]# ls -gjiagghig
ls:无效选项 -- j
Try 'ls --help' for more information.
[root@sc ~]# echo $?
2

[root@sc ~]# ls -l /jfisg
ls: 无法访问/jfisg: 没有那个文件或目录
[root@sc ~]# echo $?
2

$? 代表上一条命令的返回值

    0 说明上一条命令执行成功
    1 命令是正确,但是可能参数或者选项不对
    2 命令是正确,但是可能参数或者选项不对
    127 命令不存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩未零

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值