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语句

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JWT详解「建议收藏」

    JWT详解「建议收藏」本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:JWT详解JWT简介1.什么是JWT在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程:客户端使用用户名和密码请求登录服务端收到请求,验证用户名和密码验证成功后,服务端会签发一个token,再把这个token返回给客户端客户端收到token后可以把它存储起来,比如放到cookie中客户端每次向服务端请求资源时需要携带服务端签发的token,可以在cookie或者header中携带服务端收到请求,然后去验证客户端请

  • 30 个重要数据结构和算法完整介绍建议保存

    30 个重要数据结构和算法完整介绍建议保存数据结构和算法(DSA)通常被认为是一个令人生畏的话题——一种常见的误解。它们是技术领域最具创新性概念的基础,对于工作/实习申请者和有经验的程序员的职业发展都至关重要。话虽如此,我决定在CSDN新星计划挑战期间将我所了解的数据结构和算法集中起来。本文旨在使DSA看起来不像人们认为的那样令人生畏。它包括15个最有用的数据结构和15个最重要的算法,可以帮助您在学习中和面试中取得好成绩并提高您的编程竞争力。后面等我还会继续对这些数据结构和算法进行进一步详细地研究讲解。

  • 不一样的春节思维导图的内容_电学思维导图

    不一样的春节思维导图的内容_电学思维导图春节是我国四大传统节日之一,可以算是历史之悠久。但随着社会的发展,春节期间的年味渐渐的没那么浓烈了,以前大家聚在一起守岁、放鞭炮等,而现在大多数人都是抱着电子产品谁也不搭理谁。以往的习俗简而又简,后出

  • ideal的debug_idea debug怎么用

    ideal的debug_idea debug怎么用Debug介绍Debug设置如上图标注1所示,表示设置Debug连接方式,默认是Socket。Sharedmemory是Windows特有的一个属性,一般在Windows系统下建议使用此设置,相对于Socket会快点。Debug常用快捷键快捷键 介绍 F7 在Debug模式下,进入下一步,如果当前行断点是一个方法,则进入当…

  • vscode快捷键重置及快捷键恢复

    vscode快捷键重置及快捷键恢复在用vscode设置快捷键的时候,有的快捷键和自己设置的有重复和冲突现象,为了图方便我把与自己冲突的快捷键都删除了,结果导致键盘的删除按键用不了,相当于自己写的代码无法删除了。最后还是在官网上找到解决办法。 首先找到键盘快捷设置 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20191128152918849.png) ![在这里插入图片描述](http…

  • poj1195(二维树状数组)

    poj1195(二维树状数组)

发表回复

您的电子邮箱地址不会被公开。

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