zoukankan      html  css  js  c++  java
  • Linux--shell交互输入与循环语句--06

    一、交互输入

    1、命令用法:read a b c   -> aa bb cc

    read命令同时可以定义多个变量值;而输入的内容默认以空格为分隔符,将值输入到对应的变量中;如果默认值输入过多,最后所有的值都会被赋予给最后一个变量;如果输入的值少于变量数,多余的变量则为空值

    2、常用参数:

    -p   read -p “请输入一个值:” 变量名 ===  echo -n “请输入一个值:” ; read 变量名

    -t   定义超时时间   read -t 5 -p “请输入一个值:” 变量名

    二、while语句

    1、while语句语法格式

    定义初始值
    while 条件判断;do
        循环体
        值变化语句
    done

    练习

    i=1
    while (( $i<=5 ));do
        echo $i
        let i++
    done

    2、其他两种特殊语句格式

    第一种:

    while read 变量;do
        循环体
    done <</path/filename

     第二种.死循环:

    while true;do
        循环体
    done

    break  打断循环

    continue  打断本次循环,开始下次循环

    sleep  延时循环

    三、until语句

    与while用法相同

    与while的区别是,只有判断条件为False时候,才会进入循环

    四、for语句循环

    1、for语句的应用场景:

    某功能需要循环执行,只是执行对象不同,(数据对象必须是同类)

    2、for语句格式:

    for 变量 in 条件列表;do
        循环体
    done

    3、列表的生成方式

     a) 直接给出字符串列表

    for i in a b c d e;do
        循环体
    done

    b) 整数列表

    {start .. end} :    例:{1..9}
    seq :命令引用 $(seq [start [步长]] end) 例:seq 20 2 30输出20 22 24 26 28 30

    c) 返回列表命令

      $(COMMAND)

      应用场景例:判断/var/log的所有文件,以.log结尾的文件统计处理

    #!/bin/bash
    #
    declare -i sum=0
    for i in $(ls /var/log/);do
        if [[ $i = "*.log" ]];then
            echo $i
            let sum++
        fi
    done
    echo "统计.log结尾的文件有:$sum"   

    d) glob机制:---- 文件通配符的机制

    e) 变量引用:----传参

      $@  $* 将参数作为for循环的列表

      $0 代表运行的脚本文件  awk中$0代表整行内容

        需要多个次的时候用$@ ,需要一个词的时候用$*

     4、扩展:for语句的另一种写法(基于C语言的写法)

    for((i=0;i<10;i++));do
        循环体
    done
  • 相关阅读:
    跟我一起了解koa(四)
    快速定位隐蔽的sql性能问题及调优【转载】
    PV,UV,IP
    ActiveMQ的安全机制使用及其源代码分析 [转]
    ActiveMQ中的安全机制 [转]
    ESB、SOA、EAI异同【转】
    磁盘 I/O 性能监控指标和调优方法
    PLS-00306:错误解决思路
    浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)
    关于SQLSQL Server的三值逻辑简析
  • 原文地址:https://www.cnblogs.com/gxnihao/p/11364415.html
Copyright © 2011-2022 走看看