首页 > 系统相关 >shell的流程控制语句

shell的流程控制语句

时间:2022-10-18 15:13:33浏览次数:47  
标签:语句 shell 流程 sh echo CentOS7 NUM root bash

shell的流程控制语句:

  • 选择

  • 判断

  • 循环

shell的条件选择语句:if

if分为单分支、双分支和多分支

单分支格式:
if 判断条件;then
   执行的操作
fi

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
NUM=1

if test $NUM -eq 1 ; then 
	echo NUM == 1
fi

[root@CentOS7 ~]# bash 1.sh 
NUM == 1

双分支:
[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
NUM=2

if test $NUM -eq 1 ; then 
	echo NUM == 1

else
	echo NUM != 1

fi

[root@CentOS7 ~]# bash 1.sh 
NUM != 1
多分支语句:
[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
NUM=2

if test $NUM -eq 1 ; then 
	echo NUM == 1

elif test $NUM -eq 2; then
	echo NUM == 2
else
	echo NUM !=1

fi

[root@CentOS7 ~]# bash 1.sh 
NUM == 2

条件判断语句:

case格式:
case 变量引用 in 
PAT1)
	执行相关操作
	;;
PAT2)
	执行相关操作
	;;
*)
	执行相关操作
	;;
esac

#case语句支持通配符
* 任意长度任意字符
? 任意单个字符
[] 指定范围内的任意单个字符
| 或者,如: a|b

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash

NUM=4

case  $NUM in

1)
	echo NUM == 1
	;;
2)
	echo NUM == 2
	;;
3)
	echo NUM == 3
	;;
4)
	echo NUM == 4
	;;
*)
	echo xxxxx
	;;
esac

[root@CentOS7 ~]# bash 1.sh 
NUM == 4

shell循环语句:

for

格式:

for 变量 in 列表
do
	要做的操作
done
列表:
  • 直接给出列表:1 2 3 4 5 ... #空格隔开

  • 整数列表:{start..end} 、$(seq [start [step]] end)

  • 通过$()命令替换得到列表

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
um=0
for num in `seq 100`;do   #列表1-100的表示方法; {1..100} seq 100
    let sum=$sum+$num  #let
done
echo $sum

[root@CentOS7 ~]# bash 1.sh 
5050

乘法表:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
for i in {1..9};do
    for j in {1..9};do
	 if [ $i -ge $j ];then
 	   echo -e "$i * $j = $[i*j]\t\c"  #\c很关键
         fi
    done
    echo
done
#\t:一个制表位,实现对齐的功能 \n:换行符 \c:有了-e参数,我们也可以使用转义字符\c来强制 echo 命令不换行
[root@CentOS7 ~]# bash 1.sh 
1 * 1 = 1	
2 * 1 = 2	2 * 2 = 4	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25	
6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36	
7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49	
8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64	
9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72	9 * 9 = 81	
while循环:

格式:

while 判断条件;do
      所作的操作
done

#循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;
#条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环

例如:

[root@CentOS7 ~]# cat 1.sh 
#!/bin/bash
sum=0
i=1
while test $i -le 100 ;do
	let sum=$sum+$i
	let i=i+1
done
echo sum==$sum

[root@CentOS7 ~]# bash 1.sh 
sum==5050

while 特殊用法 while read

作用:逐行处理文本

标签:语句,shell,流程,sh,echo,CentOS7,NUM,root,bash
From: https://www.cnblogs.com/heyongshen/p/16802609.html

相关文章

  • shell的条件测试语句:test
    条件测试:  判断某需求是否满足,需要由测试机制来实现,专用的测试表达式需要由测试命令辅助完成测试结果:若真,则状态码变量$?返回0若假,则状态码变量$?返回1条......
  • if语句(选择流程控制语句)
    第一种格式if(条件表达式){   要执行的语句;} 例子    运行结果  第二种格式if(条件表达式){      语句一;}else{     语......
  • JDBC练习-select语句和JDBC工具类
    JDBC练习-select语句练习:定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回。1.定义Emp类封装Emp表数据的JavaBean2.实现方法public List<Emp>findA......
  • 用嵌套if语句显示一个数的约数
    //divisors.c--使用嵌套if语句显示一个数的约数#include<stdio.h>#pragmawarning(disable :4996)#include<stdbool.h>intmain(){  unsignedlongnum;  ......
  • 已整理-shell脚本编程资料整理
    目录:1、变量的定义与类型2、配置用户环境3、shell的整数运算4、条件测试5、if条件分支6、循环7、ca......
  • mac上的类xshell的工具termius功能研究测试,附mac上安装brew并解压asar文件
    1.安装brew1.1nodejsbrew的安装目录在/usr/local/Cellar,我们以安装nodejs为例子,只需要执行:brewinstallnodejs1.2brew使用中科大源安装brew /usr/bin/ruby-e"$(......
  • 解析目标检测全流程!附代码数据
    作者:王程伟,算法工程师在计算机视觉中,红外弱小目标检测是一个重要的方向,但直到近一两年,才开始运用一些深度学习的方法。深度学习自2012年就开始大火,为何近一两年才更多被应用......
  • Shell图形化脚本基础
    脚本菜单创建菜单创建菜单函数functionmemu{clearechoecho-e"\t\tTHEFUNCTION\n"echo-e"\t1.FUNCTION1"......
  • JavaScript输入输出语句propmt、alert、console
    propmt是一个输入语句它的返回结果是你输入的内容,无论输入什么内容返回结果的数据类型都是字符串类型。alert是一个弹框输出console是控制台输出 下面代码的意思是输......
  • Python pass语句及其作用
    在实际开发中,有时候我们会先搭建起程序的整体逻辑结构,但是暂时不去实现某些细节,而是在这些地方加一些注释,方面以后再添加代码,请看下面的例子:age=int(input("请输入你......