当前位置: 首页 > news >正文

【Shell】流程控制

目录

  • if else
    • if
    • if else
    • if else-if else
    • case ... esac

和 Java、PHP 等语言不一样,sh 的流程控制不可为空,如(以下为 PHP 流程控制写法):

<?php
if (isset($_GET["q"])) {search(q);
}
else {// 不做任何事情
}

在 sh/bash 里可不能这么写,如果 else 分支没有语句执行,就不要写这个 else。

if else

if

if 语句语法格式

if condition
thencommand1 command2...commandN 
fi

写成一行(适用于终端命令提示符):

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

末尾的 fi 就是 if 倒过来拼写,后面还会遇到类似的。

if else

if else 语法格式:

if condition
thencommand1 command2...commandN
elsecommand
fi

if else-if else

if else-if else 语法格式:

if condition1
thencommand1
elif condition2 
then command2
elsecommandN
fi

if else 的 […] 判断语句中大于使用 -gt,小于使用 -lt。

if [ "$a" -gt "$b" ]; then...
fi

if 后面必须跟空格,(if 后有空格,[ 是命令,后面也需要空格)。
[ 后、] 前,以及变量和运算符之间必须有空格。

在这里插入图片描述

如果使用 ((…)) 作为判断语句,大于和小于可以直接使用 > 和 <。

if (( a > b )); then...
fi

在这里插入图片描述

case … esac

case … esac 为多选择语句,与其他语言中的switch ... case 语句类似,是一种多分支选择结构,每个case分支用右圆括号开始,用两个分号;;表示break,即执行结束,跳出整个case ... esac语句,esac作为结束标记。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令

语法格式如下

case 值 in
模式1)command1command2...commandN;;
模式2)command1command2...commandN;;
esac

case工作方式如上,取值后面必须为单词in,每一模式必须以右括号结束,取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至;;

取值将检测匹配的每一个模式,一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式,如果无一匹配模式,使用星号*捕获该值,再执行后面的命令

在这里插入图片描述

http://www.dtcms.com/a/531937.html

相关文章:

  • 设计模式-组合模式(Composite)
  • 景区建设网站的不足贵阳有做网站的公司吗?
  • 做网站有那几种末班网站维护员工作内容
  • 开源AI智能客服、AI智能名片与S2B2C商城小程序融合下的商家客服能力提升策略研究
  • 【FPGA】时序逻辑原理之D触发器与计数器原理
  • BLDC电机关键电气参数(R、L、磁链)的工程测量方法深度解析
  • NewStarCTF2025-Week4-Web
  • 主流多维表格产品深度解析:飞书、Teable、简道云、明道云、WPS
  • 怎么当网站站长网站建设都用那些软件
  • 装修中怎样避坑
  • MCoT在医疗AI工程化编程的实践手册(中)
  • RV1126 NO.33:OPENCV简介
  • [人工智能-大模型-84]:大模型应用层 - AI/AR眼镜:华为智能眼镜、苹果智能眼镜、Google Glass智能眼镜
  • 站长之家模板建立wordpress
  • WPF C# 视频播放器
  • Python中如何防止SQL注入攻击
  • 远程软件测评:关键维度评分与同类工具对比分析
  • 【HarmonyOS】动画—转场动效
  • Python函数定义与调用全解析:从基础语法到实战技巧
  • C++容器priority_queue
  • [linux仓库]打开线程的“房产证”:地址空间规划与分页式管理详解[线程·壹]
  • 昆明网站建设询力鼎科技做电商怎么找货源
  • 园区网站建设中山网站建设文化案例
  • 【算法速成课 3】康托展开(Cantor Expansion)/ 题解 P3014 [USACO11FEB] Cow Line S
  • 【java面向对象进阶】------抽象类+接口 综合实例
  • 自然语言处理实战——英法机器翻译
  • 图数据库系统学习指南(从入门到进阶)
  • 信息服务平台网站西峰住房和城乡建设局网站
  • 影像生成评估指标FID
  • 【金仓数据库】ksql 指南(三) —— 创建与管理表空间和模式