当前位置: 首页 > news >正文

shell脚本语句(画矩形、三角形、乘法表和小游戏)(#^.^#)

目录

一、语句

一、条件语句

一、以用户为例演示

一、显示当前登录系统的用户信息

 二、显示有多少个用户

二、单分支if

一、输入脚本

 二、验证结果

三、双分支if

一、输入脚本

二、验证结果 

四、多分支if

一、输入脚本

 二、验证

二、循环语句

一、shell版本的循环语句

二、C语言版本

三、举例

三、输出一个矩形

四、在矩形的基础上显示一个三角形

 五、输出九九乘法表

 六、猜价格(小游戏)

一、脚本配置

 二、验证

一、显示结果(第一种)

二、显示结果(第二种)


一、语句

一、条件语句

一、以用户为例演示

一、显示当前登录系统的用户信息

w命令

 二、显示有多少个用户

w | wc -l

 显示有7个用户

前两个是固定标题,从第三个开始才是登录用户,所以要统计数量需要

命令:echo $[$(w | wc -l) -2]

显示结果

二、单分支if

语法:if condition;then command

一、输入脚本

#!/bin/bash
#test
#mpy
#单分支if
user_num=$[$(w | wc -l) - 2]
if [ $user_num -gt 3 ];then
        echo "用户过多登录"
fi


 二、验证结果

三、双分支if

语法:if condition;then command;else command

一、输入脚本

#多分支if
if [ $user_num -gt 5 ];then
        echo "登录用户过多"
else
        echo "登录用户适中"
fi

 

二、验证结果 

 

四、多分支if

语法:if condition;then command;elif condition;then command;elif

#多分支if   成绩判断

一、输入脚本


#A:90~100;B:80~89;C:70~79;D:0~69
read -p "请输入要查询的成绩: " score
if [ $score -lt 0 -o $score -gt 100 ];then
        echo "输入错误,请输入0~100的数字"
        $0
else
        if [ $score -ge 90 -a $score -le 100 ];then
                echo "A"
        elif [ $score -ge 80 -a $score -le 89 ];then
                echo "B"
        elif [ $score -ge 70 -a $score -le 79 ];then
                echo "C"
        else
                echo "D"
        fi
fi

在这段脚本中,使用了read命令来获取用户输入的成绩,并存储在变量score中

使用if语句判断输入的成绩是否小于0或大于100,如果是,则打印错误信息并重新运行脚本

90-100的区间是A

80-89 的区间是B

70-79的区间是C

其余的是D

 二、验证

二、循环语句

一、shell版本的循环语句

for i in 取值范围;do
        command
done

二、C语言版本

for ((i=初始值;condition;i++));do command done

 for ((i=初始值;condition;i--));do command done

则是递减1

三、举例

for i in {1..10};do
        echo $i
done

可以在里面嵌入if语句,满足条件时数数,不满足则不数数 

for i in {1..10};do
        if [ $(($i % 2)) -eq 0 ];then
                echo $i
        fi
done

等于0的时候输出,不等于0则不管

验证结果

只显示奇数

for i in {1..10};do
        if [ $(($i % 2)) -ne 0 ];then
                echo $i
        fi
done
 

因为除2 不是0就是1

验证

 C语言的写法

for ((i=1;i<=10;i=i+2));do
        echo $i
done

每次递增两个

验证

当等于i=i+3的时候从1开始每次加三个 

 

 for ((i=2;i<=10;i=i+2));do
        echo $i
done

显示只有偶数

从2开始每次递增2

三、输出一个矩形

#!/bin/bash
#test
#mpy
for ((i=1;i<=10;i++));do
        for ((j=1;j<=10;j++));do
                echo -n "  *"
        done
        echo
done


 赋予权限   chmod +x jx.sh

./jx.sh

成功获得一个矩形

四、在矩形的基础上显示一个三角形

 #!/bin/bash
#test
#mpy
for ((i=1;i<=10;i++));do
        for ((j=1;j<=i;j++));do
                echo -n "  *"
        done
        echo
done

 五、输出九九乘法表

#!/bin/bash
#test
#mpy
for ((i=1;i<10;i++));do
        for ((j=1;j<=i;j++));do
                echo -n -e "$j x $i = $[i*j]\t"
        done
        echo
done

这是一个Bash脚本

  1. #!/bin/bash:这是一个shebang,告诉系统要使用bash解释器来运行脚本。

  2. #test 和 #mpy:这是注释行,用于说明脚本的用途和功能。

  3. for ((i=1;i<10;i++)):这是一个外循环的for循环,它从1开始迭代,每次增加1,直到i的值小于10为止。

  4. for ((j=1;j<=i;j++)):这是一个嵌套在外循环中的内循环的for循环,它从1开始迭代,每次增加1,直到j的值小于等于i为止。

  5. echo -n -e "$j x $i = $[i*j]\t":这是一个echo语句,用于打印乘法表的一行。其中$j$i是变量,代表内外循环的迭代值,$[i*j]表示i和j的乘积。

  6. echo:这是一个空的echo语句,用于打印换行符,以便在打印完一行乘法表后换行。

 

显示结果

 六、猜价格(小游戏)

一、脚本配置


#!/bin/bash
#test
#mpy
rand=$[$RANDOM % 100]
times=0
while true
do
        read -p "请输入你要猜测的价格: " price
        let times++
        if [ $price -eq $rand ];then
                if [ $times -eq 1 ];then
                        echo "你猜对了,真NB,一次就中"
                elif [ $times -lt 7 ];then
                        echo "你猜对了,一共猜测了$times次! "
                else
                        echo "挑战失败! "
                        echo "正确的价钱是$rand"
                fi
                exit 0
        elif [ $price -gt $rand ];then
                echo "猜大了! "
        else
                echo "猜小了! "
        fi
done

 

 二、验证

一、显示结果(第一种)

二、显示结果(第二种)

http://www.lryc.cn/news/135004.html

相关文章:

  • vue3、react组件数据传值对比分析——父组件传递子组件,子组件传递父组件
  • 2023国赛数学建模C题思路模型代码 高教社杯
  • wxPython使用matplotlib绘制动态曲线
  • JVM——类的生命周期
  • 【Docker】docker数据卷(数据挂载)持久化
  • Spring Boot实现IP地址解析
  • 小程序中通过canvas生成并保存图片
  • Error creating bean with name ‘esUtils‘ defined in file
  • Java开发面试题 | 2023
  • Java课题笔记~ 自定义拦截器实现权限验证
  • 微信小程序使用npm引入三方包详解
  • pytest自动化框架运行全局配置文件pytest.ini
  • 视频播放实现示例Demo
  • makefile的自动化变量
  • 使用Kind搭建本地k8s集群环境
  • 【STM32RT-Thread零基础入门】 7. 线程创建应用(多线程运行机制)
  • .net日志系统
  • SpringCloud学习笔记(二)_Eureka注册中心
  • spark的eventLog日志分析
  • 探究Java spring中jdk代理和cglib代理!
  • 反转链表(C++)
  • 适配器模式:让不兼容的接口协同工作
  • 【1day】复现Milesight-VPNserver.js 任意文件读取漏洞
  • 前端代码规范
  • Java接入文心一言
  • 信息管理系统三级等保的一些要求
  • 第六届“蓝帽杯”电子取证模块(初赛)解析+全资源一次性分享
  • 《Go 语言第一课》课程学习笔记(九)
  • docker 安装nginx 和 elasticsearch ik 自定义分词
  • 谈谈收音机的发展