shell脚本流程控制语句

if else语句

需求 

提示"请输入你的考试成绩:" 接收用户输入一个成绩, 之后使用if else条件句判断
要求1: 小于 60 输出"不及格"
要求2: 大于等于70 并且 小于80 输出"中等"
要求3: 大于等于80 并且 小于90 输出"良好"
要求4: 大于等于90 并且 小于等于100 输出"优秀"
要求5: 以上不符合输出"成绩不合法"

代码

#!/bin/bash
read -p "请输入你的考试成绩:" score
if (( $score < 60 )); then
    echo "不及格"
elif (( $score >= 60 && $score < 70 )); then
    echo "及格"
elif (( $score >= 70 && $score < 80 )); then
    echo "中等"
elif (( $score >= 80 && $score < 90 )); then
    echo "良好"
elif (( $score >= 90 && $score <= 100 )); then
    echo "优秀"
else
    echo "成绩不合法"
fi

if语句退出状态码

Linux任何命令的的执行都会有一个退出状态,大多数命令状态0代表成功, 非0代表失败

$? 查看退出状态码

需求

提示输入"请输入文件全名: "和"请输入数据:" 并接收文件名与数据

使用逻辑运算符判断满足2 条件 : 文件需要具有可写权限 和 输入的数据长度不为0

满足以上2个条件 将用户输入的 数据 写入到指定的文件中去

代码

#!/bin/bash
read -p "请输入文件全名: " filename
read -p "请输入数据:" data
if [ -w $filename -a -n $data ]
then
        echo $data
        echo $data > $filename
        echo "成功"
else
        echo "失败"
fi

test命令

对整数比较测试

test 整数1 -options 整数2

options:-eq想等  -ne不等  -gt大于  -ge大于等于  -lt小于  -le小于等于 

对字符串比较测试

test 变量1 -options 变量2

options:\>  \<  !=  =  ==

对文件测试

test -options 文件路劲字符串

options:-w可写  -r可读  -e存在  -x执行  -s存在且至少有一个字符  -d目录?

case语句        多选择语句

case、in 和 esac 都是 Shell 关键字, esac就是case的反写在这里代表结束case

匹配模式: 可以是一个数字、一个字符串,甚至是一个简单正则表达式。

格式说明
*表示任意字符串。
[abc]表示 a、b、c 三个字符中的任意一个。[15ZH] 表示 1、5、Z、H 四个字符中的任意一个。
[m-n]表示从 m 到 n 的任意一个字符。[0-9] 表示任意一个数字,[0-9a-zA-Z] 表示字母或数字。
|表示多重选择,类似逻辑运算中的或运算。 abc | xyz 表示匹配字符串 "abc" 或者 "xyz"。

需求 实现输入0-7数字返回相应周几

代码

#!/bin/bash
read -p "请输入一个数字:" num
case $num in
1)
        echo "周一"
        ;;
2)
        echo "周二"
        ;;
3)
        echo "周三"
        ;;
4)
        echo "周四"
        ;;
5)
        echo "周五"
        ;;
6)
        echo "周六"
        ;;
7|0)
        echo "周日"
        ;;
*)
        echo "无效"
        ;;
esac
 

while语句

语法        

while 条件
do
    命令1
    命令2
    ...
    continue; # 结束当前这一次循环, 进入下一次循环
    break; # 结束当前循环
done

until语句

循环结构语句,与while循环相反,条件为false会一直循环

until 条件

do

        命令

done

for循环

语法1

for var in item1 item2 ... itemN
do
    命令1
    命令2
    ...
done

语法2  start end 整数

for var in {start..end}
do
    命令
done

语法3

for((i=start;i<=end;i++))
do
    命令
done

select语句

语法    常配合case in 使用

select var in menu1 menu2 ...
do
    命令
done

#!/bin/bash
echo "你的爱好是什么?"
select hobby in "编程" "游戏" "篮球" "游泳"
do
    echo $hobby
    break
done
echo "你的爱好是:${hobby}"

#!/bin/bash
echo "你的爱好是什么"
select hobby in "编程" "游戏" "篮球" "游泳"
do
    case $hobby in
        "编程")
            echo "编程,多敲代码"
            break
            ;;
        "游戏")
            echo "少玩游戏"
            break
            ;;
        "篮球"|"游泳")
            echo "运动有利健康"
            break
            ;;
        *)
            echo "输入错误,请重新输入"
    esac
done

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值