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

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

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

北京

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

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

看不清楚,换张图片

免费获取短信验证码

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

条件判断:if语句

语法格式:


if [ expression ]
then
Statement(s) to be executed if expression is true
fi

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

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


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

示例:


#!/bin/bash/
a=10
b=20
if [ $a == $b ]
then 
echo "a is equal to b"
elif [ $a -gt $b ]
then
echo "a is greater to b"
else
echo "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=10
b=20
if test $a == $b 
then 
echo "a is equal to b"
else
echo "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/bash
option="${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.sh
test.sh: usage: [ -f filename ] | [ -d directory ]
./test.sh -f index.html
File name is index.html

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

for循环

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

for 变量 in 列表


do
command1
command2
...
commandN
done

示例:


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

输出:


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

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


for str in 'This is a string'
do
echo $str
done

运行结果:

This is a string

遍历目录下的文件:


#!/bin/bash
for FILE in *
do
echo $FILE
done

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

遍历文件内容:

city.txt


beijing
tianjin
shanghai
#!/bin/bash
citys=`cat city.txt`
for city in $citys
echo $city
done

输出:

beijing
tianjin
shanghai

while循环

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

其格式为:

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

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

示例:


#!/bin/bash
c=0;
while [ $c -lt 3 ]
do
echo "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/bash
c=0;
until [ $c -eq 3 ]
do
echo "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/bash
i=0
while [ $i -lt 5 ]
do
i=`expr $i + 1`
if [ $i == 3 ]
then
break
fi
echo -e $i
done

运行结果:

1
2

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

break n

表示跳出第 n 层循环。

continue

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


#!/bin/bash
i=0
while [ $i -lt 5 ]
do
i=`expr $i + 1`
if [ $i == 3 ]
then
continue
fi
echo -e $i
done

运行结果:

1
2
4
5

以上内容是小编给大家介绍的Shell脚本的条件控制和循环语句的相关知识,希望对大家有所帮助!

免责声明:

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

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

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

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

下载Word文档

猜你喜欢

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

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

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

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

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

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

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

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

shell脚本编程之循环语句

在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的。一、for命令格式:for 变量 in 列表;do 循环体donefor命令会遍历列表中的每一个值,并且在遍历完成后退出循环。列表形式有以下几种:1、在命
2022-06-04

shell脚本实战-while循环语句

前言 上文我们讨论了for循环的使用,在有限循环里,我们使用for循环是很方便的一件事情,今天我们来探讨下while循环 while循环语句的语法分析语法格式一:while [条件] do操作 done语法格式二:while rea
2022-06-04

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

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

Shell脚本应用 – for、while循环语句

通过Shell脚本应用(二)学习到了if条件条件语句的使用方法等。Shell作为一种脚本编程语言,同样了包含了循环,分支等其他程序控制结构,从而能够轻松完成更加复杂、强大的功能。我们今天就来认识for、while、case语句的具体应用。一
2023-06-05

如何使用Shell脚本for循环语句

本篇内容主要讲解“如何使用Shell脚本for循环语句”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Shell脚本for循环语句”吧!与其他编程语言类似,Shell支持for循环。for
2023-06-09

PHP学习笔记:条件语句与循环控制

【引言】在学习PHP编程语言过程中,条件语句与循环控制是必须掌握的基础知识点。条件语句用于根据不同的情况执行不同的代码,而循环控制则允许我们重复执行一段代码多次。本文将详细介绍PHP中的条件语句与循环控制,并提供具体的代码示例。【一、条件语
2023-10-21

Shell脚本for循环语句简明教程

与其他编程语言类似,Shell支持for循环。 for循环一般格式为: for 变量名 in 列表docommand1command2...commandNdone当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取
2022-06-04

通过PHP的while循环语句实现条件判断与循环控制

标题:利用PHP的while循环语句实现条件判断与循环控制在PHP编程中,while循环语句是一种常用的循环结构,它可以通过条件判断实现循环控制,使得程序能够根据特定的条件重复执行某段代码块。在本文中,我们将介绍如何通过PHP的while
通过PHP的while循环语句实现条件判断与循环控制
2024-03-08

如何使用Shell脚本while、until循环语句

这篇文章主要讲解了“如何使用Shell脚本while、until循环语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Shell脚本while、until循环语句”吧!一、while
2023-06-09

Shell脚本while、until循环语句简明教程

一、while循环 while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为: while 命令docommand1command2...commandNdone命令执行完毕,控制返回循环顶部,从头开始
2022-06-04

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

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

如何编写shell脚本实现循环语句

这篇文章主要介绍“如何编写shell脚本实现循环语句”,在日常操作中,相信很多人在如何编写shell脚本实现循环语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写shell脚本实现循环语句”的疑惑有所
2023-06-09

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

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

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

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

编程热搜

目录