Shell基础学习---2、运算符、条件判断、流程控制

news2025/1/19 22:28:47

1 、运算符

1、基本语法
“$((运算式))”或‘“$[运算式]”
2、案例实操
在这里插入图片描述

2 、条件判断

1、基本语法
(1)test condition
(2)[ condition ] (注意condition前后要有空格)
注意:条件非空即为true,[zhm]返回true,[ ]返回false
2、常用判断条件
(1)两个整数之间比较

符号含义
-eq等于(equal)
-ne不等于(not equal)
-lt小于(less than)
-le小于等于(less equal)
-gt大于(greater than)
-ge大于等于(greater equal)

说明:如果是字符串之间的比较,用等号“=”判断相等;用“!=”判断不等。
(2)按照文件权限进行判断

符号含义
-r有读的权限(read)
-w有写的权限(write)
-x有执行的权限(execute)

(3)

符号权限
-e文件存在(existence)
-f文件存在并且时一个常规文件(file)
-d文件存在并且是一个目录(directory)

3、案例实操
(1)100是否大于99
在这里插入图片描述
(2)helloworld.sh是否有执行权限
在这里插入图片描述

(3)/root/scripts/a/a.txt 目录中的文件是否存在
在这里插入图片描述
(4)多条件判断(&&表示前一条命令执行成功时,才执行后一条命令,||表示上一条命令执行失败2后,才执行下一条命令)
在这里插入图片描述

3 、流程控制

3.1 if判断

1、基本语法
(1)单分支

if [ 条件判断式 ];then
	程序
fi

if [ 条件判断式 ]
then 
	程序
fi

(2)多分支

if [ 条件判断式 ]
then
	程序
elif [ 条件判断式 ]
then
	程序
else 	
	程序
fi

注意:
(1)[ 条件判断式 ],中括号和条件判断式之间必须要有空格。
(2)if后面要有空格。
2、案例实操
输入一个年龄数字参数,判断这个年龄属于哪种人。
在这里插入图片描述

#!/bin/bash
if [ $# -ne 1 ]
then
        echo '请输入一个数字参数'
        exit
fi

if [ $1 -lt 18 ]
then
        echo '未成年'
elif [ $1 -lt 40 ]
then
        echo '青年人'
elif [ $1 -lt 60 ]
then
        echo '中年人'
else
        echo '老年人'
fi

3.2 case语句

1、基本语法

case $变量名 in
"值1")
	如果变量的值等于值1,则执行程序1
;;
"值2")
	如果变量的值等于值2,则执行程序2
;;
	...省略其他分支...
*)
	如果变量的值都不是以上的值,则执行此程序
;;
esac

注意:
(1)case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2)双分号“;;”表示命令序列结束,相当于java中的break。
(3)最后的“*)”表示默认模式,相当于java中的default。
2、案例实操
输入一个数字(1-3),输出对应的英文
在这里插入图片描述

#!/bin/bash
case $1 in
1)
        echo "one"
;;
2)
        echo "two"
;;
3)
        echo "three"
;;
*)
        echo "number else"
;;
esac

3.3 for循环

1、基本语法

for((初始值;循环控制条件;变量变化))
do 
	程序
done

2、案例实操

#!/bin/bash
sum=0
for ((i=0;i<=100;i++))
do
        sum=$[$sum+$i]
done
echo $sum

在这里插入图片描述
3、基本语法2

for 变量 in 值1 值2 值3
do
 	程序
 done

4、案例实操
(1)打印所有参数
在这里插入图片描述

#!/bin/bash
for i in monther father you
do
        echo "$i都是家人"
done

(2)比较$*和$@的区别
(没有加"")
在这里插入图片描述


#!/bin/bash
echo '==========$*=========='
for i in $*
do
echo $i

done

echo '==========$@=========='
for i in $@
do
echo $i
done


(加了"")
在这里插入图片描述


#!/bin/bash
echo '==========$*=========='
for i in "$*"
do
echo $i

done

echo '==========$@=========='
for i in "$@"
do
echo $i
done


注意:
(1)$*和$@都表示传递给函数或脚本的所有参数,不被双引号"“包含时,都以$1,$2,$3…$n的形式输出所有参数。
(2)当它们被双引号”"包含时,$*会将所有的参数作为一个整体,以“$1,$2,$3…$n”形式输出;而$@会将各个参数分开,以“$1”,“$2”…“$n”的形式输出所有参数。

3.4 while循环

1、基本语法

while [ 条件判断式 ]
do
	程序
done

2、案例实操
从1加到100
在这里插入图片描述


#!bin/bash
sum=0
i=1
while [ $i -le 100 ]
do
        sum=$[$sum+$i]
        i=$[$i+1]
done
echo $sum

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

批量域名综合信息查询-域名批量注册查询软件

域名综合信息查询 域名是一个网站的重要组成部分&#xff0c;它直接影响着网站的流量和排名。对于网站管理者来说&#xff0c;了解域名的综合信息是非常重要的。为了便于管理者查询和了解域名的综合信息&#xff0c;147SEO提供了免费的域名综合信息查询服务。下面&#xff0c;…

案例9:Java公益物资分配系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

k8s系列-eureka部署集群

1.基本信息 2.容器信息 容器镜像名称: xxxx:30002/dmp/eureka:2022.10.08.14.39.17 环境变量 参数名称 参数值 eureka.instance.hostname ${HOSTNAME}.dmp-eureka-cloud eureka.instance.prefer-ip-address false eureka.client.service-url.defaultZone http://dmp-eureka…

CLLC谐振变换器的基波分析

CLLC谐振变换器_基波分析 目录 CLLC谐振变换器_基波分析 目录电路图FHA分析基于FHA的电路增益特性分析 电路图 FHA分析 输入电压FHA分析 谐振输入假设为理想方波 V i ( t ) 4 V i n π ∑ n 1 , 3 , 5... ∞ 1 n s i n ( 2 π n f s t ) V_{i}(t)\frac{4Vin}{\pi}\sum_…

拓尔微芯片TMI33421在家电上的应用、特点及概述

TMI33421是拓尔微最新推出的一款30V, 2A 同步降压DC-DC转换器&#xff0c;在效率和可靠性方面表现俱佳。 高效率&#xff1a;最高可达95% TMI33421是一颗同步降压转换器&#xff0c;将2颗MOS管集成在芯片内部&#xff0c;实现更小的功率损耗&#xff0c;在2A的正常工作电流下&…

第03讲:SpringCloudStream实现分布式事务

需求分析 本案例是通过一个发送短信验证码的功能来实验MQ发送消息时实现分布式事务&#xff0c;思路分析如下 消息生产者生产发送验证码的半消息 生产者执行本地事务&#xff08;将验证码保存到数据库&#xff09;&#xff0c;并记录事务的ID&#xff0c;如果整个过程不出现异…

[点云学习] 一、点云相关知识了解

1.何谓点云&#xff1f; 点云是一种表示三维空间中对象的数据结构&#xff0c;它由许多离散的点组成。每个点都有自己的位置坐标和可能的其他属性&#xff0c;如颜色、法向量和强度等。点云通常由激光扫描仪、相机或其他传感器捕获&#xff0c;用于创建三维模型、地图或进行遥感…

three.js学习 11 - 1.threejs常用几何体 2.几何体材质自定义 3.材质的旋转与堆叠效果

1.threejs常用几何体 ①.缓冲几何体&#xff08;立方体&#xff09; 官网API地址&#xff1a;https://www.three3d.cn/docs/index.html?qgeometry#api/zh/geometries/BoxGeometry ②.圆缓冲几何体 官网地址&#xff1a;https://www.three3d.cn/docs/index.html?qgeometry#a…

内存一致性(Memory Consistency)模型简介

这里写自定义目录标题 1. 前言2 为什么需要内存一致性(Memory Consistency)模型3. 什么是内存一致性(Memory Consistency)模型4. 各种内存一致性(Memory Consistency)模型4.1 顺序一致性(SC: Sequential Consistency)模型4.2 完全存储定序(TSO: Total Store Order)模型4.3 部分…

外贸人如何精准开发客户?Facebook开发客户全攻略

现在做跨境的都了解的一个社媒平台就是Facebook了&#xff0c;因为很多人都会拿Facebook来开发客户&#xff0c;忙里偷闲&#xff0c;今天东哥就来聊聊用Facebook开发客户的一些心得。 用Facebook开发客户的心得 1、利用关键词搜索 使用行业相关的关键词、产品特定的关键词、相…

菁染料-N-羟基琥珀酰亚胺酯Cyanine7-NHS ester活性脂1432019-64-1

CY7-NHS ester是一种荧光染料&#xff0c;具有橙红色荧光。它的化学式为C41H48ClN3O4&#xff0c;分子量为733.64。CY7-NHS的荧光特性适合生物学应用&#xff0c;它的激发波长为750nm&#xff0c;发射波长为773nm&#xff0c;可用于近红外成像。这种标记物可以用于活细胞成像、…

案例10:Java外卖平台设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

web开发中如何知道表单的数据是否发生了变更,后端框架又是如何响应的,都有哪些方案

前言 针对web界面开发&#xff0c;今天对于一些细节做了一点总结与回想&#xff0c;好久不做web开发了&#xff0c;今天竟然都忘记了以前的界面组件、后端orm映射框架的一些基础知识了&#xff0c;今天主要总结的内容是&#xff0c;当界面提交一个表单后&#xff0c;vue是如何…

【JavaEE】wait/notify方法 和 单例模型

目录 前言 1、 wait和notify 1.1、wait()方法 1.2、notify&#xff08;&#xff09;方法 1.3、wait和sleep 的对比 2、单例模式 2.1、饿汉模式 2.2、懒汉模式 2.3、上述懒汉模式和饿汉模式在多线程情况下是否安全 2.3.1、解决懒汉模式多线程不安去问题 前言 这里补充…

网络安全面试题合集

以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;本套面试题&#xff0c;已整理成pdf文档&#xff0c;但内容还在持续更新中&#xff0c;因为无论如何都不可能覆盖所有的面试问题&#xf…

瑞吉外卖 - 启用与禁用员工账号功能(8)

某马瑞吉外卖单体架构项目完整开发文档&#xff0c;基于 Spring Boot 2.7.11 JDK 11。预计 5 月 20 日前更新完成&#xff0c;有需要的胖友记得一键三连&#xff0c;关注主页 “瑞吉外卖” 专栏获取最新文章。 相关资料&#xff1a;https://pan.baidu.com/s/1rO1Vytcp67mcw-PD…

最新入河排污口设置论证、水质影响预测与模拟、污水处理工艺分析及典型建设项目入河排污口方案报告书

随着水资源开发利用量不断增大&#xff0c;全国废污水排放量与日俱增&#xff0c;部分河段已远远超出水域纳污能力。近年来,部分沿岸入河排污口设置不合理&#xff0c;超标排污、未经同意私设排污口等问题逐步显现&#xff0c;已威胁到供水安全、水环境安全和水生态安全&#x…

Packet Tracer – 配置 VLAN

Packet Tracer – 配置 VLAN 地址分配表 设备 接口 IP 地址 子网掩码 VLAN PC1 NIC 172.17.10.21 255.255.255.0 10 PC2 NIC 172.17.20.22 255.255.255.0 20 PC3 NIC 172.17.30.23 255.255.255.0 30 PC4 NIC 172.17.10.24 255.255.255.0 10 PC5 NI…

open3d 表面重建

目录 1. create_from_point_cloud_ball_pivoting 2. create_from_point_cloud_alpha_shape 3. create_from_point_cloud_poisson 从以下效果来看&#xff0c;第三个方法最好。 1. create_from_point_cloud_ball_pivoting 关键代码&#xff1a; rec_mesh o3d.geometry.T…

面试被问麻了....

前几天组了一个软件测试面试的群&#xff0c;没想到效果直接拉满&#xff0c;看来大家对面试这块的需求还是挺迫切的。昨天我就看到群友们发的一些面经&#xff0c;感觉非常有参考价值&#xff0c;于是我就问他还有没有。 结果他给我整理了一份非常硬核的面筋&#xff0c;打开…