首页 > 系统相关 >shell脚本之if,case语句与for循环

shell脚本之if,case语句与for循环

时间:2023-02-02 10:45:29浏览次数:45  
标签:case 语句 shell do sh echo 循环 key bash

一、if语句

if [ 条件 ]

then

命令1 命令2

…..

else

if [ 条件 ]

then

命令1 命令2

….

else

命令1 命令2

…..

fi

fi

 

if语句实例

vim a.sh                                     #创建脚本文件,注意必须.sh结尾
脚本内容:
#!/bin/bash                                  #脚本解释器
read -p  "请输入你的成绩进行判断(0-100): " key  #读取用户输入的内容为变量key
if [ $key -ge 91 -a  $key -le 100   ]        #条件1:如果key大于等于91且小于等于100则执行then 
then                                         #key符合条件1执行此then
echo "你的成绩为优秀"
elif [ $key -ge 81 -a $key -le 90    ]      #条件2:如果key大于等于81且小于等于90则执行then
then                                        
echo "你的成绩为良好"
elif [ $key -ge 60 -a $key -le 80    ]      #条件3:如果key大于等于60且小于等于80则执行then
then                                        
echo "你的成绩为及格"
elif [ $key -lt 60  ]                       #条件4:如果key大于等于60且小于等于80则执行then
then                                        
echo "你的成绩为不及格"                  
else                                        #key不符合上述任何条件则执行else
echo "输入错误,请输入0-100的正整数"
fi                                          #结束语fi
chmod +x a.sh                               #脚本添加执行权限
bash   a.sh                                 #使用shell执行脚本,也可使用路径方式执行

  

 

 

 

 二、case语句

case 变量 in

值1) 命令1 命令2

….. 最后命令 !!

值2) 命令1 命令2

…… 最后命令 ;;

esac

 

 case使用方法

#!/bin/bash
while true
do
	read -r -p "Are You Sure? [Y/n] " input
	case $input in
	    [yY][eE][sS]|[yY])
			echo "Yes"
			exit 1
			;;
	    [nN][oO]|[nN])
			echo "No"
			exit 1	       	
			;;
	    *)
			echo "Invalid input..."
			;;
	esac
done

  

 

 

 

三、for循环

for 变量 in

循环列表

do

命令1 命令2

….

最后命令

done

 

for循环例子

#!/bin/bash
sum=0
for i in {1..100}
do
let sum=$i+$sum
done
echo sum=$sum

  

 

 

 

四、while循环

while   [ 判断条件] 使用while循环满足条件执行do,不满足不执行 

do       

执行动作   while循环执行动作

done         while循环结束标志

 

 

五、循环99乘法表

9*9乘法表
第一步:
vim 99.sh              
脚本内容:
#!/bin/bash
for i in {1..9}        #for循环9次从i=1开始
do
echo -n "*"            #每循环一次打印一个*,echo  -n参数表示不换行
done                   #此for循环语句结束
bash  99.sh            
执行结果:
*********
第二步:
vim 99.sh           
脚本内容:
#!/bin/bash
for  j  in  {1..9}     #添加打印列循环,循环9次从j=1开始  
do                     #j循环时做do中的内容    
    for i in {1..9}    #第一步for循环内容不变
    do
    echo -n "*"
    done
echo                   #列循环每循环一次打印一行空格进行换行
done                   
bash 99.sh 执行结果: ********* ********* ********* ********* ********* ********* ********* ********* ********* 第三步: vim 99.sh 脚本内容: #!/bin/bash for j in {1..9} #列循环内容不变 do for i in `seq $j` #修改行循环i的取值范围为展开变量j,即当j=1时i取值只有1,所以循环一次。当 j=2时,i取值为1和2,所以i=1和i=2各循环一次,循环2次。以此类推到j=9 do echo -n "*" done echo done bash 99.sh #调用shell执行脚本 执行结果: * ** *** **** ***** ****** ******* ******** ********* 第四步: vim 99.sh 脚本内容: #!/bin/bash for j in {1..9} do for i in `seq $j` do echo -ne "$j*$i=$[ $j*$i ]\t" #行输出内容修改为9*9算式和结果。$[ ]表示计算里面的正整数结 果,echo -e参数表示调用转义符,\t表示制表符即循环时输出一个tab键 done echo done bash 99.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

  

 

标签:case,语句,shell,do,sh,echo,循环,key,bash
From: https://www.cnblogs.com/trist-commot/p/17070105.html

相关文章

  • ClickHouse的语句优化策略
    一使用执行计划​​ClickHouse官网执行计划详解​​平常写sql的时候,有时候因为我们的有限的水平,写出的sql很差,ck为我们提供了执行计划查询的方法,通过此,我们可以优化我们的......
  • LeetCode - 709. To Lower Case
    题目ImplementfunctionToLowerCase()thathasastringparameterstr,andreturnsthesamestringinlowercase.Example1:Input:"Hello"Output:"hello"Example2:......
  • shell基础
    shell开头#!/bin/bash#!/bin/sh#!/usr/bin/awk#!/usr/bin/envpython#!/usr/bin/perl这几行在第一行,不再第一行就是注释不用的话就用相关解释器带上文件名执行......
  • Linux系统Shell脚本第四章:shell函数
    目录一、shell函数1、函数的作用2、函数使用步骤3、定义函数基本格式4、函数变量5、退出函数6、函数位置变量与脚本位置变量区别 一、shell函数1、函数的作用定......
  • java day3 switch-case
      if-else则是不会处理后续语句。 ......
  • 漏洞免费实战部分-安卓应用漏洞学习case6
    安卓应用漏洞学习case6前期回顾漏洞免费实战部分-安卓应用层getLastPathSegment函数问题漏洞实战部分2-安卓应用ZipEntry对象问题实战漏洞实战部分3-ContentProvider......
  • 希尔排序(Shell Sort)
    一、算法概述1.1算法分类十种常见排序算法可以分为两大类:比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排......
  • shell脚本变量
    1、$#表示执行脚本传入参数的个数2、$*表示执行脚本传入参数的列表(不包括$0)3、$$表示进程的id4、$@表示执行脚本传入参数的所有个数(不包括$0)5、$0表示执行的脚本......
  • 学习bash反弹shell过程中所想到的
       bash-i>&/dev/tcp/ip/port0>&1   在这一句命令中,主要包含两个问题:“>&”和“/dev/tcp/ip/port”。1. /dev/tcp/ip/port  /dev目录下存放这设备文......
  • 客服系统即时通讯IM开发(六)Glang Gorm 执行原生Sql语句增删改查封装库【唯一客服】网站
    在开发在线客服系统的时候,有某些地方需要使用脚本去批量执行SQL语句,这个时候就需要使用简单的执行SQL的封装函数了查询操作是使用的原生的sql库,没用Gorm,原因是Gorm的RawS......