Linux(ubuntu)shell脚本条件判断函数和循环(入门必看)

简介: Linux(ubuntu)shell脚本条件判断函数和循环(入门必看)

一.shell脚本条件判断


       shell脚本之处条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了,shell脚本提供了if  then 的条件判断语句,写法。


1. if  then 语句写法

       if [条件判断] ;then


       //条件判断成立要做的事情


       fi   (结束)


编写:

f5c819e91d734ac390b89778e7f42776.png执行:


5c409b19227848faae723a343dcdd51c.png


2. if then else 语句写法

       if   【条件判断】; then


 //条件判断成立要做的事情


       else   【条件】


   //条件判断不成立要做的事情


   fi    //结束


编写:

d1bdac91e34f446d9f58a6a9311fbb73.png

执行:


7285e0e736904044980e3e76c30fc878.png


3. if  elif else  语句写发

if【条件判断】;then


//条件判断成立要做的事情


elif 【条件判断】;then


//条件判断成立要做的事情


else


//条件判断不成立要做的事情


fi


case 语句写法


case $变量   in


       "第一个变量内容")


       程序段


       ;;      //表示该程序块结束


       "第二个变量内容")


       程序段


       ;;


       "第n个变量内容")


       程序段


       ;;


esac


编写:

5c002451d89149088c973947f91f3a54.png

执行:


b90abb3db29e4ae4a976f6b71a7cca34.png


二.shell 脚本函数


1.  函数的简单使用

例如:

function fname (参数){
        //函数代码段
}
#!/bin/bash
function help(){
    echo "this is help cmd!"
}
function close(){
    echo "this is close cmd!"
}
case s1 in
        "-h")
        help
        ;;
        "-c")
        close
        ;;
esae

2.函数的传参:

#!/bin/bash
print(){
        echo "param 1:$1"
        echo "param 2:$2"
}
print a b

三.shell 循环


1.while   do  done  循环

       while [括号]     //括号内的状态是判断式


       do                  //循环开始


                 //循环代码


       done

#!/bin/bash
while [ "$value" != "close" ]
do
    read -p "please input str:" value
done
    echo "stop while!!"

执行:


13bbb95214c74b4991d3b2c7c4bbb756.png


直到输入  close  循环结束


2.  until  do   done  循环

until[条件]        //不成立开始循环


do


//循环代码段


done


3.for循环

for var in con1  con2  con3  ......


do


//循环体


done    


编写:

#!/bin/bash
for name in bit1 bit2 bit3 bit4
do
    echo "your name: $name"
done

4.for 循环数值处理写法

for((初始值;限制值;执行步长))

do

//循环代码段

done

编写:

#!bin/bash
read -p"please input count:" count
total=0
for((i=0;i<=count;i=i+1))
do 
    total=$(($total+$i))
done
echo "1+2+···+$count=$total"

执行:

754aceb1648f42f0b50087981909aeb0.png

相关文章
|
3天前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
54 32
|
13天前
|
存储 Linux 网络安全
linux应急响应检查脚本
通过这个脚本,可以快速收集系统的关键信息,有助于在发生问题时进行及时的应急响应和分析。
73 34
|
2月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
95 15
|
3月前
|
存储 缓存 Ubuntu
Ubuntu Linux目录结构
理解Ubuntu Linux的目录结构对系统管理、维护和故障排除至关重要。每个目录都有其特定的用途和存放内容,通过了解这些目录,可以更高效地管理系统文件,确保系统的稳定运行。希望本文对你深入理解Ubuntu的目录结构有所帮助。
100 1
|
3月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
123 2
|
3月前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
3月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
4天前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
90 15
|
25天前
|
弹性计算 Ubuntu Java
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
38 6