• 14 shell脚本--006交互输入与for语句


    1、交互输入

      read  

        read 命令同时可以定义多个变量值,而输入的内容默认以空格为分隔符,将值输入到对应的变量中;

        如果默认值过少,最后所有的值都会被赋予给最后一个变量;

        如果默认值过多,多余的变量则为空值;     

        >read a b c

          >aa bb cc 

        read如何输入:

          (1)echo "请输入一个目录:"

            我们需要echo -n取消换行符号

           (2)echo "请输入一个目录:"; read  +变量

              请输入一个目录:/etc/

        常用参数:

          -p

            read - p  "请输入一个目录:" + 变量

          -t

            read  -t 5 -p "请输入一个目录:" + 变量

        脚本默认值

            

    2、for语句循环

      for语句的应用场景:

        有一个功能,这个功能需要循环执行,只是执行的对象不同;

      for语句格式:

        for 变量 in 列表;do

          循环体

        done  

    练习:九九乘法表:

    (1)方法一:

    (2)方法二:

      echo -e 

        -e:使echo命令,能够识别特殊字符

         : 回车不换行

         : 换行符

         :制表符tab = 4个空格

        unix2dos    -->

        dos2unix

      case语句:

        case的语法格式:

          case 变量 in

          PATTEN1)

            代码块1

              ;;     

          PATTEN2)

            代码块2

              ;;

          *)

      列表的生成方式:

        1、直接给出字符串列表

          for i in a b c d e;do 

            循环体

          done

        2、整数列表  

          a 、{start ... end}    //{1...1}是不行的 = python   range{1,100}

          b 、seq命令引用   $seq[start ... end]

            步长  python  range{1,100,2}

    练习:ping有多少台电脑在线

               

                    

      3、返回列表的命令

        $(command)

        应用场景:ls /var/log

      4、glob机制------文件名通配符的机制

          $(ls /var/log)

          /var/log/*

         test命令总结:

            1、test的命令的option的-a -o 只在命令中使用;

                

       5、变量引用---传参

          $@  $*  将参数作为for循环

          $0  ----和awk的不一样

            bash中的$0   代表运行的脚本文件;

            awk中的$0    代表整行内容;   ------awk按行执行

          

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

      扩展:for语句的另外一种写法:

          基于c语言的for语言写法:

            for 变量 in 列表;do

                循环体

            done  

            优点:不易进入死循环

          

          for((i=0;i<10;i++))

          for((初始条件;条件判断语句;值变化语句))  

            循环体

          done

        

        while语句的格式:

          i = 0 (因为机器识别数字是从0开始的)

          初始值

          while 条件 ;do

            循环体

            let i++

          done        

  • 相关阅读:
    Nth Highest Salary
    第二高的薪水
    组合两个表
    牛客(66)机器人的运动范围
    牛客(65)矩阵中的路径
    牛客(64)滑动窗口的最大值
    牛客(63)数据流中的中位数
    牛客(62)二叉搜索树的第k个结点
    牛客(61)序列化二叉树
    mybits(2)增删改查
  • 原文地址:https://www.cnblogs.com/wx00/p/11356936.html
Copyright © 2020-2023  润新知