zoukankan      html  css  js  c++  java
  • Shell循环语句

    Shell 循环控制语句

    1、if格式

    a、脚本格式

    #!/bin/bash
    ###本脚本主要是练习20190909
    ###本脚本主要是用于if循环语句;
    ###判断批量执行的参数是否为空;
    if [ ! $1 ]
    then
    	echo "********批量执行格式:sh $0 BatchTask_1"
    	break
    fi
    ###判断批量执行的参数是否等于BatchTask_1
    canshu=BatchTask_1
    if test $1 = $canshu
    then
    	sh start.sh $1
    else
    	echo "*********批量执行的参数不正确,请参数以下批量执行格式!"
    	echo "*********批量执行格式:sh $0 BatchTask_1"
    	break
    fi
    

    b、命令行格式:

    if [ $(ps -ef |grep -c "ssh") -ge 1 ];then echo last >>/home/log/1/last_log.sh;fi
    

    2、if else

    #!/bin/bash
    ###判断批量执行的参数是否等于BatchTask_1
    canshu=BatchTask_1
    if test $1 = $canshu
    then
    	sh start.sh $1
    else
    	echo "*********批量执行的参数不正确,请参数以下批量执行格式!"
    	echo "*********批量执行格式:sh $0 BatchTask_1"
    	break
    fi
    

    3、if elif else

    #!/bin/bash
    ###本脚本写于20190909
    if test $1 = M
    then
    	echo "这是个男的!"
    elif test $1 = F
    then
    	echo "这是个女的!"
    else
    	echo "性别不详,有待考究!"
    fi
    

    4、for循环;

    a、脚本格式:

    #!/bin/bash
    ###本脚本主要用于联系for循环
    ###本脚本写于20190909
    for i in 1 2 3 4 5
    do
    	echo "这是$i次循环!"
    done
    

    b、命令行格式:

    for i in 1 2 3 4 5;do echo "这是$i次循环!";done;
    

    5、while循环

    while循环用于不断循环执行以系列命令,也用于从输入文件中读取数据,命令通常为测试条件;

    #!/bin/bash
    ###本脚本主要用于练习while循环;
    ###本脚本写于20190909;
    int=1
    while(( $int<=5 ))
    do
    	res=`expr $int * $int`
    	echo "$int * $int等于$res"
    	let "$int++"
    done
    	
    

    a、while循环的test

    #!/bin/bash
    ###本脚本写于20190910
    ###本脚本主要用于while循环test;
    echo "===========>>按下Ctrl+d退出脚本运行!!!"
    echo -e -n "请输入你想输入的名字:
    "
    while read res
    do
    	echo "$res is a little caiji!!!"
    done
    

    b、无限循环

    #!/bin/bash
    ###无限循环
    int=1
    while true
    do
    	echo "$int"
    	let "int++"
    done
    
    ###命令行格式;
    while true;do echo "true";done;
    

    6、until循环

    until循环执行一系列命令直至条件为true时停止;

    until循环与while循环处理方式上恰好相反,判断条件返回值为false,则继续执行循环体内的语句,否则跳出循环;

    #!/bin/bash
    ###本脚本主要用于until循环语句;
    ###本脚本写于20190910;
    echo "输出打印小于特定数字的所有整数"
    if [ ! $1 ]
    then
    	echo "=======>>脚本执行格式:sh $0 参数1"
    	break
    fi
    int=0
    until [ $int -gt $1 ]
    do
    	echo $int
    	let "int++"
    done
    

    7、case

    shell case语句为多选择语句,可以用case语句匹配一个值与一个模式,如果匹配成功,执行相应的命令。

    #!/bin/bash
    ###本脚本主要用于练习case
    ###本脚本写于20190910
    if [ ! $1 ]
    then
    	echo "========执行脚本命令格式错误========="
    	echo "========执行格式为:sh start.sh 参数"
    	break
    else
    	case $1 in
    	BatchTasck_WZ)
    		sh start.sh BatchTasck_WZ
    		echo "正在执行的批量为:sh start.sh BatchTasck_WZ"
    		;;
    	BatchTasck_MS)
    		sh start.sh BatchTasck_MS
    		echo "正在执行的批量为:sh start.sh BatchTasck_MS"
    		;;
    	BatchTasck_HK)
    		sh start.sh BatchTasck_HK
    		echo "正在执行的批量为:sh start.sh BatchTasck_HZ"
    		;;
    	BatchTasck_ZA)
    		sh start.sh BatchTasck_ZA
    		echo "正在执行的批量为:sh start.sh BatchTasck_ZA"
    		;;
    	*)
    		echo "=================>>MS的批量脚本参数为:BatchTask_MS"
    		echo "=================>>WZ的批量脚本参数为:BatchTask_WZ"
    		echo "=================>>HK的批量脚本参数为:BatchTask_HK"
    		echo "=================>>ZA的批量脚本参数为:BatchTask_ZA"
    		;;
    	esac
    fi
    

    8、跳出循环

    在循环过程中,有时候需要在未达到循环结束条件的时候跳出循环,有两个命令可以实现该功能:break和continue;

    a、break

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

    #!/bin/bash
    ###本脚本主要用于练习break命令;
    ###本脚本写于20190910
    if [ ! $1 ]
    then
    	echo "==========>>本脚本执行的格式为:sh $0 参数1"
    	echo "==========>>参数1为字符格式"
    	break
    else
    	if test $1 = 毛
    	then
    		echo "==========>>这可不是随便玩的!!"
    		break
    	else
    		echo "来了$1老弟!!"
    	fi
    fi
    
    		
    

    b、continue

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

    #!/bin/bash
    ###本脚本主要是用于练习continue命令;
    ###本脚本写于20190910
    while true
    do
    	echo -e -n "请输入你想要输入的姓名:
    "
    	read name
    	if [ ! $name ]
    	then
    		continue
    	else
    		if test $name = 毛
    		then
    			echo "==========>>这可不是随便玩的!!"
    			continue
    		else
    			echo "来了$1老弟!!"
    			sleep 5
    		fi
    	fi
    done
    
    	
    

      

     

  • 相关阅读:
    python使用win32api截图并回收资源
    tesseract-ocr的安装及使用
    python识别图片文字
    Python中CreateCompatibleDC和CreateBitmap造成的内存泄漏
    Python调用windows API实现屏幕截图
    turtle库常用函数
    Python3.6安装turtle模块
    Python中的截屏模块 pyscreenshot
    Python实现屏幕截图的两种方式
    观察者模式(Observer Pattern)
  • 原文地址:https://www.cnblogs.com/tengjiang/p/11493869.html
Copyright © 2011-2022 走看看