shell脚本程序学习之控制语句

shell脚本流程控制语句(if、for、while、case) if、for、while、case语句 阅读详情

控制

控制语句

if 控制语句

格式一:

if [条件 1]; then
    # 执行第一段程序
else
    # 执行第二段程序
fi

格式二:

if [条件 1]; then
    # 执行第一段程序
elif [条件 2]; then
    # 执行第二段程序
else
    # 执行第三段程序
fi

栗子 : if_then.sh

#!/bin/bash

echo "Press y to continue"
read yn

if [ $yn = "y" ]; then
    echo "script is running..."
else
    echo "stopped!"
fi

image-20200801125823200

case 控制语句

case $变量名称 in
    " 第一个变量内容 " )
    # 程序段一
    ;;

    " 第二个变量内容 " )
    # 程序段二
    ;;

    * )
    # 其它程序段
    exit 1
esac

栗子 : case1.sh

#!/bin/bash

echo "This script will print your choice"

case "$1" in
    "one" )
    echo "your choice is one"
    ;;

    "two" )
    echo "your choice is two"
    ;;

    "three" )
    echo "Your choice is three"
    ;;

    * )
    echo "Error Please try again!"
    exit 1
    ;;

esac

image-20200801125912801

栗子 : case2.sh

#!/bin/bash

echo "Please input your choice:"

read choice
case "$choice" in
    Y | y | yes | Yes | YES )
    echo "It's right"
    ;;

    N* | n*)
    echo "It's wrong"
    ;;

    *)
    exit 1
esac

image-20200801130318481

for 控制语句

形式一:

初始值: 变量在循环中的起始值

限制值: 当变量值在这个限制范围内时, 就继续进行循环

执行步阶: 每作一次循环时, 变量的变化量

for (( 初始值; 限制值; 执行步阶 ))
do
    # 程序段
done

declare 是 bash 的一个内建命令, 可以用来声明 shell 变量、 设置变量的属性。 declare 也可以写作 typeset。

declare -i s 代表强制把 s 变量当做 int 型参数运算。

栗子 : for1.sh

#!/bin/bash

declare -i sum

for (( i=1; i<=100; i=i+1 ))
do
    sum=sum+i
done

echo "The result is $sum"

image-20200801130712549

形式二:

第一次循环时, $var 的内容为 con1

第二次循环时, $var 的内容为 con2

第三次循环时, $var 的内容为 con3

for var in con1 con2 con3 ...
do
    # 程序段
done

栗子 : for2.sh

#!/bin/bash

for i in 1 2 3 4 5 6 7 8 9
do
    echo $i
done

image-20200801130901078

栗子 : for3.sh

#!/bin/bash

for name in `ls`
do

if [ -f $name ];then
    echo "$name is file"
elif [ -d $name ];then
    echo "$name is directory"
else
    echo "^_^"
fi

done

image-20200801131046782

while 控制语句

当 condition 成立的时候进入 while 循环, 直到 condition 不成立时才退出循环。

while [ condition ]
do
    # 程序段
done

栗子 : while2.sh

#!/bin/bash

declare -i i
declare -i s

while [ "$i" != "6" ]
do
    s+=i;
    i=i+1;
done

echo "The count is $s"

image-20200801140136072

unitl 控制语句

这种方式与 while 恰恰相反, 当 condition 成立的时候退出循环, 否则继续循环。

until [ condition ]
do
    #程序段
done

栗子 : until2.sh

#!/bin/bash

declare -i i
declare -i s

until [ "$i" = "6" ]
do
    s+=i;
    i=i+1;
done

echo "The count is $s"

image-20200801140158254

break continue

break

break 命令允许跳出循环。

break 通常在进行一些处理后退出循环或 case 语句

continue

continue 命令类似于 break 命令

只有一点重要差别, 它不会跳出循环, 只是跳过这个循环步

函数

有些脚本段间互相重复, 如果能只写一次代码块而在任何地方都能引用那就提高了代码的可重用性。

shell 允许将一组命令集或语句形成一个可用块, 这些块称为 shell 函数。

定义函数的两种格式:

格式一:

函数名()
{
    # 命令 ...
}

格式二:

function 函数名()
{
    # 命令 ...
}

函数可以放在同一个文件中作为一段代码, 也可以放在只包含函数的单独文件中

所有函数在使用前必须定义, 必须将函数放在脚本开始部分, 直至 shell 解释器首次发现它时, 才可以使用

调用函数的格式为:

函数名 param1 param2……

使用参数同在一般脚本中使用特殊变量

$1, $2 …$9 一样

函数可以使用 return 提前结束并带回返回值

return 从函数中返回, 用最后状态命令决定返回值。

return 0 无错误返回

return 1 有错误返回

栗子 : function.sh

#!/bin/bash

is_it_directory()
{
    if [ $# -lt 1 ]; then
        echo "I need an argument"

        return 1
    fi 

    if [ ! -d $1 ]; then
        return 2
    else
        return 3
    fi
} 

echo -n "enter destination directory:"

read direct
is_it_directory $direct

echo "the result is $?"

image-20200801140237198

由于个人水平有限, 难免有些错误, 还请指点

【Shell 系列】非常详细的Shell脚本基础 阅读详情

相关推荐

Linux Shell 编程学习笔记:使用条件判断语句控制程序流程

通过学习条件判断语句的使用,我们可以在 Linux Shell 编程中灵活控制程序的流程。如果用户输入了 “A”,则输出 “Option A is selected.”;如果用户输入了 “B”,则输出 “Option B is selected.”;如果用户输入了 “C”,则输出 “Option C is selected.”;在 Linux Shell 编程中,条件判断语句是非常常用的工具,用于根据不同的条件决定程序的执行流程。最后,如果都不满足,则输出 “The number is zero.”。

2301_79326930的博客 134

shell中的控制语句

shell中的控制语句条件测试语句文件测试字符串测试数值测试逻辑操作符if条件语句select语句case语句for语句类似于C语言的for循环语句while语句 shell中的控制语句 条件测试语句 在shell中,用户可以使用测试语句来测定指定的条件表达式的条件的真和假。当指定条件为真,条件测试的返回值为 0,繁殖,条件测试的返回值为非 0值。条件测试的语法有两种,分别是 test命令和[]命令 test命令语法格式如下:test expression 其中,参数expression表示需要进行测.

qq_43747991的博客 928

大语言模型在构建UNSPSC 分类数据中的应用

UNSPSC 是联合国标准产品和服务代码。本文研究如何利用大语言模型生成分类系统的分析

姚家湾博客 1888

shell编程控制语句

一、shell中控制语句 (1)单分支语句 //if test  表达式 if  [ 表达式 ] then     命令1     命令2 fi  规则:表达式为真,执行对应的命令,否则不执行 exit n  功能:结束当前的shell脚本 参数: n     退出状态码 一般成功,正常退出 n == 0,异常或则错误退出n == 1(非0) exit &lt;===&gt;exit 0  默认...

xt18971492243的博客 340

IDEA集成selenium自动化测试(Java+Selenuim+testNG+Maven)

文章目录写在前面01 | 新建Maven项目02 | idea集成Selenium03 | 写在前面 因为软件测试的需求和博主比较经常使用Java,于是,想在Idea中集成selenuim,用Java编写测试代码,因此有了这篇文章来记录一下过程。 资源指路: java使用selenium实现模拟浏览器操作API大全 模拟登录 TestNG入门教程 感谢上面博客的大佬。 01 | 新建Maven项目 不使用骨架创建,直接点击左侧Maven,然后一路next即可。 02 | idea集成Sele

aLinxi的博客 8281

Memory SystemsCache, DRAM, Disk翻译学习DRAM部分(二)

DRAM 的发展史

qq_33473931的博客 996

Shell编程之流程控制语句

格式:for name [ in [ word … ] ];do list;donefor 变量名 in 取值列表;do语句1donefor循环用于遍历一个列表中的每个值。# while (表达式)do语句1donewhile循环在条件为真时执行语句,适用于需要重复执行的任务。# Case选择语句 case 模式名 in 模式1) 命令;;模式2) 命令;;*) 不符合以上模式执行的命令 esaccase语句用于多个条件的选择,类似于if-elif结构。

Nancywiner的博客 884

分析国外几款主流蜜罐产品看欺骗诱捕技术的应用脉络

网络安全的本质是攻防对抗,更本质的其实是人与人心智与技术的全面较量。 欺骗诱捕技术作为攻防对抗技术中比较特殊的技术,能够使防守方更多掌握对抗中的主动权,诱导攻击,迫使攻击者耗费精力的同时,留下丰富的攻击信息。究其本质,欺骗诱捕技术更深层次考验的不止是技术的能力,还有对于攻击者作为人的理解。 国外主流蜜罐产品分析 根据MarketsandMarkets《欺骗技术市场规模、份额和2021年全球市场预测》中提到的欺骗诱捕技术全球主要供应商及产品,我们分析了几款国外主流的蜜罐产品,希望更清晰看到欺骗诱捕技术应

cdyunaq的博客 1311

shell编程--流程控制语句

vsftpd服务器已启动…

weixin_46362974的博客 198

威联通改装飞牛fnOS全攻略:从刷机到Docker影视部署

NAS系统是家庭数字存储的核心,x86架构的威联通设备凭借通用引导和驱动支持,成为改装替代系统的理想平台。飞牛fnOS作为基于Debian的国产NAS系统,以简洁UI、内置Docker和影视墙以及硬件转码能力,吸引了大量玩家。通过U盘引导安装、BIOS调整、系统盘SSD部署,可实现系统切换;原机械硬盘可挂载为存储池,配合Docker部署下载、远程访问等容器,影视中心自动削刮海报墙,硬件转码保障4K播放。改装过程需注意引导失败、硬盘识别、核显驱动等问题。这套方案能让老旧威联通焕发新生,兼顾易用性与扩展性。本文

weixin_33585822的博客 788

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

本文介绍了如何将Langfuse集成到不同类型的AI应用中,包括原生OpenAI、LangChain和LangGraph应用。主要内容包括: 两种集成模式:手动追踪(精确控制)和自动追踪(通过回调机制) 三种应用场景的集成方案: 原生OpenAI应用:使用langfuse.trace()手动记录对话流程、LLM调用和工具执行 LangChain应用:通过LangfuseCallbackHandler自动追踪Agent执行过程 LangGraph应用:与LangChain相同的自动追踪方式,可可视化节点和状态

yonggeit的博客 3305

《Linux 九》 Shell 讲解

课程大纲 『  Shell编程语法  Shell脚本调试  Shell应用实例 』 一个简单的shell程序  shell结构 :   1. #!指定执行脚本的shell   2. #注释行   3. 命令和控制结构 创建shell程序的步骤:  第一步 : 创建一个包含命令和控制结构的文件。  第二步 : 修改这个文件的权限使它可以执行。           使用chm

so true_interview / 867

基于YOLOv8的应急通道占用监测系统设计与实现

通过详细的数据集选择、模型训练、代码实现等内容,本博客为您提供完整的系统搭建过程,帮助您构建高效的监测系统。然而,在一些建筑物和公共场所中,应急通道经常被不当占用,导致紧急情况下无法及时使用,严重影响人员的疏散效率。YOLOv8是YOLO系列中的最新版本,它通过引入深度学习的优化和改进,在保证检测速度的同时,显著提升了检测精度。同时,随着深度学习技术的不断发展,检测精度与速度的提升将使得该系统在更广泛的场景中应用。:如果已有监控设备,可以采集应急通道的实时视频,并进行标注,生成占用监测数据集。

YOLO 799

【Linux】3. Shell语言

本文主要介绍了Shell程序和Shell语言,Shell语言常被用来访问Linux操作系统,因此我们需要简单了解一些关于Shell语言的知识。我们需要重点了解Shell的概念及变量,它对我们学习Linux有重要的作用,其中的环境变量更是会影响程序的行为。对于其他运算符、流程控制语句、函数等了解即可(除了专业写Shell脚本的),这些语法与C语言有相似之处,可以在使用时再去查询。

weixin_52811588的博客 1592

一文快速教你如何下载国自然模版

5. 成功进入“相关文件查看”页面后,点击左侧的“项目申请文件“,如果你此次申请的是“面上项目”,选择对应的下拉框,找到对应的模版下载即可。6. 🫑们发现,在当前页面点击“青年科学基金项目”,左侧出现的是“原国家杰出青年科学基金项目”。7. 进入下一页后,点击“青年科学基金项目”,便可以在右侧找到🫑们要找的模版啦。2. 成功登陆后,点击1处的“首页”,在首页界面,再点击2处的“项目批准”。8. 点击上图3处的“文件详情”,就可以找到可以下载的模版啦(如下图)。3. 从“项目批准”进入后,点击“管理”。

薰珞婷紫小亭子的博客 2406

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Shell流程控制

入门级别的流程控制

ccb1372098的博客 118

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【shell编程】

文章目录Shell编程(熟悉)1. 基本概念2. 编写第一个程序3. 执行Shell程序的方式4. 变量的定义4.1 语法格式4.2 定义规则5. 常用运算符5.1 算术运算符5.2 关系运算符5.3 流程控制语句1. if 判断2. case 语句3. for 循环4. while循环5. 函数 Shell编程(熟悉) 1. 基本概念 Shell是一个命令行解释器,可以接收应用程序或用户命令,然后访问操作系统内核。 Shell是一个功能相当强大的编程语言,易编写、易调试、灵活性强; 2. 编写第一个

weixin_50707328的博客 951

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

shell常见的语句结构_wuli大世界_新浪博客

一.if语句结构 1.单分支的if语句 if 条件测试操作 then 命令序列 fi 2.双分支的if语句 if 条件测试操作 then 命令序列1 else 命令序列2 fi 3.多分支的if语句 if 条件测试操作1 then 命令序列1 elif 条件测试操作2 then 命令序列2 else 命令序列3 ...

qq_39935684的博客 173

shell基础之if for while until循环

单分支if条件语句 if [ 条件判断式 ];then 程序 fi 或者 if [ 条件判断式 ] then 程序 fi 注意点: [root@localhost sh]# vim if1.sh 双分支if条件语句 if [ 条件判断式 ] then 条件成立时,执行的程序 else 条件不成时,执行的另一个程序 fi ...

wangruxin222的博客 201

shell-条件分支循环

1.条件表达式:整数 l == -eq>= -ge> -gt<= -le< -lt!= -nt2.条件语句if [ 表达式 ]then elif[表达式]then else fi例子:count=10if [ $count -gt 10 ]then echo "count>10"elif [ $count -lt 10 ]then e...

weixin_33742618的博客 175

linux程序设计实验报告-shell程序设计,linux程序设计实验报告6.docx

linux程序设计实验报告6linux程序设计实验报告6篇一:Linux上Shell程序设计实验报告   深 圳 大 学 实 验 报 告   课程名称:   学院:计算机与软件学院   实验时间:   实验报告提交时间:   教务处制   一、 实验目标:   1. 熟悉vi编辑器的使用   2. 掌握简单的Shell编程  2.1. 掌握Shell变量的使用  2.2. 掌握S...

weixin_29658015的博客 235

Shell编程入门

文章目录1 Shell编程简介2 Shell脚本的执行方式3 Shell变量3.1 Shell变量介绍3.2 定义变量的规则3.3 将命令的返回值赋给变量(重点)4 设置环境变量5 位置参数变量6 预定义变量7 运算符8 条件判断8.1 基本介绍8.2 if 判断8.3 case 语句9 循环语句9.1 for 循环9.2 while 循环10 read 读取控制台输入11 函数11.1 系统函数11.2 自定义函数 1 Shell编程简介 Shell 是一个命令行解释器,它为用户提供了一个向 Linu.

huxili2020的博客 9704

1、shell基础语法入门

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34355881的博客 98

Shell脚本学习笔记(2)——Shell变量以及程序语句详解

文章主要记录了Shell的学习笔记,关于Shell变量、参数、如何计算、以及还有一些常用的循环如何使用。并且给予了详细的例程帮助理解。很适合作为学习Shell新手的入门笔记。

万里羊的博客 6980

Shell脚本学习笔记(从入门到精通)

第1章 Shell概述 大数据程序员为什么要学习Shell呢? 1)需要看懂运维人员编写的Shell程序。 2)偶尔会编写一些简单Shell程序来管理集群、提高开发效率。 第2章 Shell解析器 (1)Linux提供的Shell解析器有: [root@MissHou ~]$ cat /etc/shells /bin/sh #是bash的一个快捷方式 /bin/bash #bash是大多数Linux默认的shell,包含的功能几乎可以涵盖shell所有的功能 /sbin/nologin #表示非交互

努力让自己发光,对的人才能迎着光而来 1万+

Shell脚本

文章目录第 1 章 shell基础1.1 运维&shell[了解]1.1.1 运维基础1.1.2 shell简介1.2 shell脚本[记忆]1.2.1 创建脚本1.2.2 脚本使用1.3 变量[应用]1.3.1 什么是变量1.3.2 本地变量1.3.3 全局变量1.3.4 查看&删除1.3.5 内置变量第 2 章 核心知识[应用]2.1 表达式2.1.1 测试语句2.1.2 条件表达式2.1.3 计算表达式2.1.4 数组操作2.2 linux常见符号2.2.1 重定向2.2.2 管道符

XiaoPawnYe的博客 1万+
上一篇: 第一个QT项目笔记
下一篇: shell脚本程序学习之 条件测试语句
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值