我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell脚本中条件控制和循环语句怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell脚本中条件控制和循环语句怎么用

这篇文章主要介绍了Shell脚本中条件控制和循环语句怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

条件判断:if语句

语法格式:

if [ expression ]thenStatement(s) to be executed if expression is truefi

注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:

if ... fi 语句if ... else ... fi 语句if ... elif ... else ... fi 语句

示例:

#!/bin/bash/a=10b=20if [ $a == $b ]then echo "a is equal to b"elif [ $a -gt $b ]thenecho "a is greater to b"elseecho "a is less to b"fi

if ... else 语句也可以写成一行,以命令的方式来运行:

a=10;b=20;if [ $a == $b ];then echo "a is equal to b";else echo "a is not equal to b";fi;

if ... else 语句也经常与 test 命令结合使用,作用与上面一样:

#!/bin/bash/a=10b=20if test $a == $b then echo "a is equal to b"elseecho "a is not equal to b"fi

分支控制:case语句

case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。

示例:

#!/bin/bash/grade="B"case $grade in "A") echo "Very Good!";;"B") echo "Good!";;"C") echo "Come On!";;*) echo "You Must Try!"echo "Sorry!";;esac

转换成C语言是:

#include <stdio.h>int main(){char grade = 'B';switch(grade){case 'A': printf("Very Good!");break;case 'B': printf("Very Good!");break;case 'C': printf("Very Good!");break;default: printf("You Must Try!");printf("Sorry!");break;}return 0;}

对比看就很容易理解了。很相似,只是格式不一样。

需要注意的是:

取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。

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

再举一个例子:

#!/bin/bashoption="${1}"case ${option} in"-f") FILE="${2}"echo "File name is $FILE";;"-d") DIR="${2}"echo "Dir name is $DIR";;*) echo "`basename ${0}`:usage: [-f file] | [-d directory]"exit 1 # Command to come out of the program with status 1;;esac

运行结果:

$./test.shtest.sh: usage: [ -f filename ] | [ -d directory ]./test.sh -f index.htmlFile name is index.html

这里用到了特殊变量${1},指的是获取命令行的第一个参数。

for循环

shell的for循环与c、php等语言不同,同Python很类似。下面是语法格式:

for 变量 in 列表

docommand1command2...commandNdone

示例:

#!/bin/bash/for value in 1 2 3 4 5do echo "The value is $value"done

输出:

The value is 1The value is 2The value is 3The value is 4The value is 5

顺序输出字符串中的字符:

for str in 'This is a string'doecho $strdone

运行结果:

This is a string

遍历目录下的文件:

#!/bin/bashfor FILE in *doecho $FILEdone

上面的代码将遍历当前目录下所有的文件。在Linux下,可以改为其他目录试试。

遍历文件内容:

city.txt

beijingtianjinshanghai#!/bin/bashcitys=`cat city.txt`for city in $citysecho $citydone

输出:

beijing
tianjin
shanghai

while循环

只要while后面的条件满足,就一直执行do里面的代码块。

其格式为:

while command
do
Statement(s) to be executed if command is true
done

命令执行完毕,控制返回循环顶部,从头开始直至测试条件为假。

示例:

#!/bin/bashc=0;while [ $c -lt 3 ]doecho "Value c is $c"c=`expr $c + 1`done

输出:

Value c is 0
Value c is 1
Value c is 2

这里由于shell本身不支持算数运算,所以使用expr命令进行自增。

until循环

until 循环执行一系列命令直至条件为 true 时停止。until 循环与 while 循环在处理方式上刚好相反。一般while循环优于until循环,但在某些时候,也只是极少数情况下,until 循环更加有用。

将上面while循环的例子改改,就能达到一样的效果:

#!/bin/bashc=0;until [ $c -eq 3 ]doecho "Value c is $c"c=`expr $c + 1`done

首先do里面的语句块一直在运行,直到满足了until的条件就停止。

输出:

Value c is 0
Value c is 1
Value c is 2

跳出循环

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环。

break

break命令允许跳出所有循环(终止执行后面的所有循环)。

#!/bin/bashi=0while [ $i -lt 5 ]doi=`expr $i + 1`if [ $i == 3 ]thenbreakfiecho -e $idone

运行结果:

1
2

在嵌套循环中,break 命令后面还可以跟一个整数,表示跳出第几层循环。例如:

break n

表示跳出第 n 层循环。

continue

continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。

#!/bin/bashi=0while [ $i -lt 5 ]doi=`expr $i + 1`if [ $i == 3 ]thencontinuefiecho -e $idone

运行结果:

1
2
4
5

感谢你能够认真阅读完这篇文章,希望小编分享的“Shell脚本中条件控制和循环语句怎么用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell脚本中条件控制和循环语句怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell脚本中条件控制和循环语句怎么用

这篇文章主要介绍了Shell脚本中条件控制和循环语句怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。条件判断:if语句语法格式:if [ expression ]then
2023-06-09

Shell脚本的条件控制和循环语句

条件判断:if语句 语法格式:if [ expression ] then Statement(s) to be executed if expression is true fi注意:expression 和方括号([ ])之间必须有空格
2022-06-04

shell脚本中case条件控制语句的使用

本篇内容介绍了“shell脚本中case条件控制语句的使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在shell脚本中,发现case语句
2023-06-09

shell脚本实战中while循环语句怎么用

这篇文章给大家分享的是有关shell脚本实战中while循环语句怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言while循环语句的语法分析语法格式一:while [条件]do 操作done语法格式二:w
2023-06-09

shell脚本编程之循环语句怎么用

小编给大家分享一下shell脚本编程之循环语句怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循
2023-06-09

Shell脚本中for循环、while循环及case分支语句怎么用

本篇内容主要讲解“Shell脚本中for循环、while循环及case分支语句怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell脚本中for循环、while循环及case分支语句怎么
2023-06-28

C#中怎么使用条件语句和循环语句

在C#中,条件语句一般使用if语句来实现,循环语句一般使用for循环、while循环、do-while循环等来实现。以下是一些示例:使用if语句实现条件语句:int num = 10;if (num > 0){Console.WriteL
C#中怎么使用条件语句和循环语句
2024-03-06

python条件语句和while循环语句怎么用

这篇文章主要介绍“python条件语句和while循环语句怎么用”,在日常操作中,相信很多人在python条件语句和while循环语句怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python条件语句和
2023-06-30

快速入门Shell脚本之条件判断语句与循环

相信大家已经对shell脚本有一定的了解了,大家对于shell脚本的条件判断语句一定非常期待。本篇博客,我们来聊一聊关于shell的条件判断语句与循环。 1.条件判断1.1基本语法[condition]注意:condition前后要有空格条
2022-06-04

shell脚本中case条件控制语句的一个bug分析

在shell脚本中,发现case语句的一个问题。就是指定小写字母[a-z]和大写字母[A-Z]的这种方法不管用了。 出现如下情况:[root@station1 ~]# cat case.sh#!/bin/bashwhile :doecho
2022-06-04

如何在Shell脚本中使用条件测试和if条件语句

今天就跟大家聊聊有关如何在Shell脚本中使用条件测试和if条件语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、条件测试操作要使Shell脚本程序具备一定的“智能”,面临的第一
2023-06-09

r语言中怎么进行条件判断和循环控制

在R语言中,可以使用if语句进行条件判断,使用for循环、while循环、repeat循环等语句进行循环控制。使用if语句进行条件判断:x 5) {print("x大于5")} else {print("x小于
r语言中怎么进行条件判断和循环控制
2024-03-02

如何在shell脚本中使用case条件语句

这期内容当中小编将会给大家带来有关如何在shell脚本中使用case条件语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。#case条件语句的语法格式case "变量" in 值1) 指令1... ;;
2023-06-09

Shell脚本的条件测试和if条件语句使用方法

一、条件测试操作要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。Shell环境根据命令执行后的返回状态值(¥?)来判断是否执行成功,当返回值为0时表示成功,否则(非0值)表示失败或异常。使
2022-06-04

shell脚本中for语句、if语句怎么用

小编给大家分享一下shell脚本中for语句、if语句怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!上部:面向过程:顺序执行选择执行: if, case循环执行: for, while, until一、for语句
2023-06-09

MySQL中怎么用REPEAT语句进行条件循环

在MySQL中,不支持使用REPEAT语句进行条件循环。MySQL中没有类似于REPEAT语句的条件循环语句,但可以通过使用WHILE语句来实现条件循环。以下是一个使用WHILE语句进行条件循环的示例:DECLARE i INT DEFA
MySQL中怎么用REPEAT语句进行条件循环
2024-04-30

学会使用Golang中的条件和循环语句

掌握Golang中的条件语句和循环语句,需要具体代码示例在Golang中,条件语句和循环语句是程序中非常重要的一部分。条件语句用来决定程序的执行流程,而循环语句用来重复执行一段代码。本文将详细介绍Golang中的条件语句和循环语句,并提供具
学会使用Golang中的条件和循环语句
2023-12-23

如何进行Shell脚本的条件测试和if条件语句使用

如何进行Shell脚本的条件测试和if条件语句使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、条件测试操作test命令是专门用来测试的工具,能够对特定条件进行测试,然
2023-06-28

Java中的控制流如何利用条件语句与循环结构确定

Java中的控制流如何利用条件语句与循环结构确定?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、块作用域块(block),即复合语句。是指由一对大括号括起来的
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录