shell中if语句_shell脚本if判断

shell中if语句_shell脚本if判断提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、if语句1.if单分支判断2.if双分支判断3.if多分支判断总结提示:以下是本篇文章正文内容,下面案例可供参考一、if语句1.if单分支判断●当“条件成立”时执行命令序列●否则不执行任合操作语法格式♦if空格条件测试then命令序列fiif加空格加一个条件测试,如果这个条件测试结果为真那么就执行then后面的命令序列,这个命令序列可以是一条命令也可以是多条命令只要条件测试为真,.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


提示:以下是本篇文章正文内容,下面案例可供参考

一、if语句

1. if单分支判断

● 当“条件成立”时执行命令序列
● 否则不执行任合操作

语法格式
♦ if空格条件测试
then 命令序列
fi
if加空格加一个条件测试,如果这个条件测试结果为真
那么就执行then后面的命令序列,这个命令序列可以是一条命令也可以是多条命令
只要条件测试为真,那么then后面的所有命令都会被执行,直到下一个fi代表if语句结束
如果if语句后面的条件测试失败,那么then后面的所有命令不再被执行

♦ if空格条件测试;then
命令序列
fi
第二种格式

示例1:

#!/bin/bash
read -p "请输入用户名:" user
#-s 是用户写的密码不会在屏幕上显示出来
read -s -p "请输入密码:" pass
#"-z"判断字串是否为空,"! -z"判断字符串是否为非空
if [ ! -z "$user" ];then
  useradd "$user"
fi
if [ ! -z "$pass" ];then
#输出变量$pass,使用管道符|将该密码传递给$user
  echo "$pass" | passwd --stdin "$user"
fi
echo

在这里插入图片描述
示例2:
使用组合命令将两个命令写在一个里面

#!/bin/bash
read -p "请输入用户名:" user
#-s 是用户写的密码不会在屏幕上显示出来
read -s -p "请输入密码:" pass
#"-z"判断字串是否为空,"! -z"判断字符串是否为非空
if [ ! -z "$user" ] && [ ! -z "$pass"];then
  useradd "$user"
#输出变量$pass,使用管道符|将该密码传递给$user
  echo "$pass" | passwd --stdin "$user"
fi
echo

在这里插入图片描述

2. if双分支判断

代码如下(示例):
● 当“条件成立”时执行命令序列1
● 否则,执行命令序列2

语法格式:
♦ if 条件测试
then
命令序列1
else
命令序列2
fi

♦ if 条件测试;then
命令序列1
else
命令序列2
fi

示例1:
测试主机是否能ping通

#!/bin/bash
#当判断$1为空时,($1)就是脚本的第一参数,当用户不给参数的时候,$1是空的时候,那么屏幕就会显
示脚本的用法是错误
if [ -z "$1" ];then
#-n 的意思是不换行,不回车,两个echo分别会用两个颜色显示,但最终会在同一行显示,因为第一个echo没有换行
  echo -n "用法:脚本 "
  echo -e "\033[35m域名或IP"
  exit
fi
#c(设置ping的次数),i(设置ping的间隔描述),-W(设置超越时间)
ping -c2 -i0 -W1 "$1" &>/dev/null
if [ $? -eq 0 ];then
  echo "$1 is up"
else
  echo "$1 is down"
fi

在这里插入图片描述

3. if多分支判断

● 相当于if语句嵌套
● 针对多个条件分别执行不通的操作

语法格式:
♦ if 条件测试1;then
命令序列1
elif 条件测试2;then
命令序列2
……
else
命令序列n
fi

if先写一个条件测试1,先试试第一个条件测试能否满足,如果这个条件可以满足,then那么,就执行then后面的命令,
如果第一个条件不满足,elif则再去判断第二个条件测试是否满足,如果可以满足就执行then后面的命令
以此类推,后面就可以做很多很多次判断,比如说,首先上来判断你性别是否为男,如果是,则执行第一个命令,如果不是,那就再判断第二个条件,你是否为女,如果是女的话,则执行第二个命令,除了男女外可能还有其他情况,就可以继续编写如a情况会如何,如果是b情况会如何
如果前面的条件都没有满足,那么就是执行else后面的命令序列

示例1:
猜数字

#!/bin/bash
b=$[RANDOM%10+1]
read -p "请输入1-10之间的整数:" a
if [ $a -eq $b ]; then
  echo "恭喜,猜对了,就是$num"
elif [ $a -lt $b ]; then
  echo "猜小了"
else
  echo "猜大了"
fi
echo

在这里插入图片描述
示例1的脚本因为每次执行都会变为随机数,所以该脚本并未完善, 后续会进一步完善该脚本

总结

● if的语法格式
需要非常熟悉if的语法格式,在编写任合具体脚本案例之前首先要熟悉掌握if的语法格式if开始fi结尾,当then和if在同一行的时候需要使用“;”分号
当不在同一行的时候可以直接输入
if的单分支它只有一种条件判断,而双分支除了有if之外还要有else,成功了,就用第一个命令,否则就是else后面的那个命令
多分支想对来说复杂一些,它可以多次判断,多次进行if判断,当前面条件都不满足时,就可以做一个else,在前面的条件都不能满足的情况下,就统一认为符合最后一种情况,执行最后一个命令
● 判断用户输入的字串是否为空
判断用户输入的字串是否为空有效防止脚本异常
● 检测主机连通性
通过示例检测主机连通性实际验证了双分支的if语句
● 猜数字
通过猜数字验证多分支的if语句

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170870.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月18日 下午4:00
下一篇 2022年8月18日 下午4:00


相关推荐

  • 用 OpenAI Functions 从文本构建知识图谱实战篇

    用 OpenAI Functions 从文本构建知识图谱实战篇

    2026年3月14日
    3
  • 数字信号处理课程实验报告(数字信号处理需要什么基础)

    问题重述 DSP课程实验计算机模拟产生多频率信号:编写通用的FFT子程序 设置参数,对信号进行频谱分析 对信号分别以满足和不满足奈奎斯特采样定理的采样率进行采样,观察其频谱变化 设计低通、高通、带通和带阻滤波器,对多频率信号进行滤波处理 撰写实验报告,内容包括实验步骤、流程图、源程序、设置参数、输出结果(图)、结果分析(结合原理)例如:模拟信号:用一个FFT处理…

    2022年4月15日
    137
  • 谷歌浏览器搜索使用指南[通俗易懂]

    谷歌浏览器搜索使用指南[通俗易懂]谷歌浏览器使用指南下载谷歌浏览器使用浏览器时遇到的问题对谷歌浏览器进行配置下载谷歌浏览器可以在谷歌浏览器官网进行下载,网址:https://www.google.cn/intl/zh-CN/chrome/在腾讯电脑管家,进行下载使用浏览器时遇到的问题搜索引擎我们这里先选用百度搜索引擎,如果想使用其他搜索引擎,更换其他的网址即可。1.当你使用谷歌浏览器时你会发现,根本上不了网2.这个时候你不要惊慌,自己在网址框中手动输入:https://www.baidu.com/即可进行上网对谷

    2025年10月20日
    5
  • wamp apache无法启动的解决方法

    wamp apache无法启动的解决方法

    2021年9月20日
    80
  • 整整1600套Axure原型图设计源文件UI UX交互设计案例

    整整1600套Axure原型图设计源文件UI UX交互设计案例网络上的 Axure 教程看了很多 大多数都是讲软件如何操作 讲交互逻辑和用户体验的却寥寥无几 而实际项目中却非常重交互逻辑和用户体验 把这 1536 套原型文件一一拆解 慢慢分析作者的设计思路 会发现 互联网产品交互设计真的很有意思 很容易掌握 文件格式 AxureRP 为防止打不开的情况 建议使用 9 0 10 0 版本以上的软件打开 文件数量 1536 套文件大小 5 95GB 资源包内包含相当丰富的项目原型 各行各业的小程序原型 APP 原型 网页前端原型 中后台原型等等都有收录 涵盖教育 电商 直播及短视

    2026年3月16日
    2
  • 基于阿里DDNS的ipv6 for windows版软件

    基于阿里DDNS的ipv6 for windows版软件基于阿里DDNS的ipv6forwindows版软件会搜到这篇帖子的同学,应该和我一样,满世界为自己的虚拟主机找寻ipv6的动态ddns程序吧?下面我先说说我的折腾故事:因为买了群晖,然后发现需要公网ip,但公网ip现在电信要钱了,开口100元一个月,挺黑的。没办法尝试了各种内网穿透,这类帖子网上很多,就不细说了,总之是各种折腾,各种不爽,最终选择了零遁伴侣做内网穿透还算稳定,速度也不错。…

    2022年6月13日
    159

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号