Shell判断:流程控制—if(二)

一、多分支结构

        1、语法:

  •                  if 条件测试1
  •                 then 命令序列
  •                 elif 条件测试2
  •                 then 命令序列
  •                 elif 条件测试3
  •                 then 命令序列....
  •                 else 命令序列
  •                 fi

        2、示例:

                需求:编写脚本,取出系统时间的小时,对数字进行判断 6--10 this is morning ;11--13 this is noon ;14--18 this is afternoon ;其他 this is night         

[root@localhost ~]# vim time.sh    #编写脚本
#!/bin/bash
hour=`date +%H`
if  [ $hour  -ge 6 -a $hour -le 10 ]
then
echo "this is morning"elif  [  $hour -ge 11 -a $hour -le 13  ]
then
echo "this is noon"elif [ $hour -ge 14 -a $hour -le 18   ]
then
echo "this is afternoon"else
echo "this is night "
fi[root@localhost ~]# chmod +x time.sh     #脚本授权[root@localhost ~]# ./time.sh     #执行脚本
this is night 

      

        

二、嵌套结构

        1、语法:

  •                 if 条件测试1 then 命令序列
  •                 if 条件测试1 then 命令序列
  •                 else 命令序列
  •                 fi
  •                 else 命令序列
  •                 fi 

        2、示例:

                需求:                 

        

[root@localhost ~]# vim useradd2.sh    #脚本编写
#!/bin/bash
read -p "请输入新用户名:" name
id $name &> /dev/null
if [ $? -eq  0   ]
then
echo "$name 用户已经存在,不需要创建。"
else
read -p "用户即将创建,请输入用户的新密码:" pass
if [ ${#pass}  -ge 7  ] ; then
useradd $name
echo "$name 用户创建成功"
echo $pass | passwd --stdin  $name
echo "$name 用户的密码是123456"
else
echo "输入的密码不足7位,创建用户失败"
fi
fi[root@localhost ~]# chmod  +x useradd2.sh    #脚本授权[root@localhost ~]# ./useradd2.sh     #执行脚本
请输入新用户名:op
op 用户已经存在,不需要创建。
[root@localhost ~]# ./useradd2.sh 
请输入新用户名:yy
用户即将创建,请输入用户的新密码:123
输入的密码不足7位,创建用户失败
[root@localhost ~]# ./useradd2.sh 
请输入新用户名:yy
用户即将创建,请输入用户的新密码:123456789
yy 用户创建成功
更改用户 yy 的密码 。
passwd:所有的身份验证令牌已经成功更新。
yy 用户的密码是123456

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/192953.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

64位ATT汇编语言使用bss段.skip指令储存字符,并使用系统调用输出字符

.global main .section .data .section .bss# 需要输出的字符数组,还没有初始化mystring: .skip 4 .section .text main:# 将mystring这个字符串的地址存入到rbx寄存器中leaq mystring,%rbx# 将a放入到mystring第一个字节里边movb $a,(%rbx)# 将地址往后边移动一个字…

python算法例10 整数转换为罗马数字

1. 问题描述 给定一个整数,将其转换为罗马数字,要求返回结果的取值范围为1~3999。 2. 问题示例 4→Ⅳ,12→Ⅻ,21→XⅪ,99→XCIX。 3. 代码实现 def int_to_roman(num):val [1000, 900, 500, 400,100, 90, 50, 40…

树之手撕红黑树

简单说一下二叉搜索树与AVL树 要学红黑树,首先你必须学会二叉搜索树,也就是二叉查找树,如果不会的同学,可以去看我写过的文章里面有 那么这里我们来说一下AVL树 他就是一个平衡二叉搜索树,什么叫平衡呢,就…

大数据HCIE成神之路之数学(2)——线性代数

线性代数 1.1 线性代数内容介绍1.1.1 线性代数介绍1.1.2 代码实现介绍 1.2 线性代数实现1.2.1 reshape运算1.2.2 转置实现1.2.3 矩阵乘法实现1.2.4 矩阵对应运算1.2.5 逆矩阵实现1.2.6 特征值与特征向量1.2.7 求行列式1.2.8 奇异值分解实现1.2.9 线性方程组求解 1.1 线性代数内…

数据库课后习题加真题

文章目录 第二章第三章第四到六章某年真题 第二章 第三章 3.8 对于教学数据库的三个基本表: s( 学号 ‾ \underline{学号} 学号​,姓名,年龄, 性别) sc( 学号 , 课程号 ‾ \underline{学号, 课程号} 学号,课程号​, 成绩) c( 课程号 ‾ \un…

【Linux网络】详解使用http和ftp搭建yum仓库,以及yum网络源优化

目录 一、回顾yum的原理 1.1yum简介 yum安装的底层原理: yum的好处: 二、学习yum的配置文件及命令 1、yum的配置文件 2、yum的相关命令详解 3、yum的命令相关案例 三、搭建yum仓库的方式 1、本地yum仓库建立 2、通过http搭建内网的yum仓库 3、…

11 月 18 日 ROS 学习笔记——可视化和调试工具

文章目录 前言一、调试 ROS 节点1. gdb 调试器2. 在 ROS 节点启动时调用 gdb 调试器3. 在 ROS 节点启动时调用 valgrind 分析节点4. 设置 ROS 节点 core 文件转储5. 日志消息1). 输出日志消息2). 设置调试消息级别 二、检测系统状态1. rqt_graph2. 可视化坐标变换3. 保存与回放…

Leetcode—2760.最长奇偶子数组【简单】

2023每日刷题&#xff08;三十一&#xff09; Leetcode—2760.最长奇偶子数组 实现代码 #define MAX(a, b) ((a > b) ? (a): (b)) int longestAlternatingSubarray(int* nums, int numsSize, int threshold){int ans 0;int i 0;while(i < numsSize) {if(nums[i] >…

HUAWEI华为MateBook X 2020款i5集显(EUL-W19P)原装出厂Windows10系统

链接&#xff1a;https://pan.baidu.com/s/1eZuLjarWH2PjAWVqMWnzjQ?pwd2374 提取码&#xff1a;2374 原厂系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为电脑管家等预装程序

迭代新品 | 第四代可燃气体监测仪,守护燃气管网安全快人一步

城市地下市政基础设施是城市有序运行的生命线&#xff0c;事关城市安全、健康运行和高质量发展。近年来&#xff0c;我国燃气事故多发、频发。2020、2021、2022 年分别发生燃气事故668、1140 起、802 起&#xff0c;造成92、106、66 人死亡&#xff0c;560、763、487 人受伤。尤…

【docker】iptables实现NAT

iptables是一个Linux内核中的防火墙工具&#xff0c;可以被用来执行各种网络相关的任务&#xff0c;如过滤、NAT和端口转发等&#xff0c;可以监控、过滤和重定向网络流量。 iptables可以用于以下应用场景&#xff1a; 网络安全&#xff1a;iptables可以过滤网络流量&#xf…

CMSIS-RTOS在stm32使用

目录&#xff1a; 一、安装和配置CMSIS_RTOS.1.打开KEIL工程&#xff0c;点击MANAGE RUN-TIME Environment图标。2.勾选CMSIS CORE和RTX.3.配置RTOS 时钟频率、任务栈大小和数量&#xff0c; 软件定时器. 二、CMSIS_RTOS内核启动和创建线程。1.包含头文件。2.内核初始化和启动。…