美文网首页Linux小推车
linux Day19:循环for while

linux Day19:循环for while

作者: 泥人吴 | 来源:发表于2018-11-04 00:06 被阅读7次

    参数

    
    $ bash cap.sh
    cap.sh
    $ bash cap.sh p1
    cap.sh
    $ vi cap.sh
    $ bash cap.sh p1
    cap.sh p1
    $ bash cap.sh p1 p2
    cap.sh p1
    $ vi cap.sh
    $ bash cap.sh p1 p2
    cap.sh p1 p2
    $ cat cap.sh
    echo $0 $1 $2
    
    # 比较下面两者的不同
    $ vi cap.sh
    $ bash cap.sh p1 p2 p3 4 5 6 7 8 9 0 3 4
    p12
    $ cat cap.sh
    echo $12
    # “$12”输出的是“$1”的内容加上字符串“2”,所以就成了“P12”,正确的写法应该是“{$12}”。
    
    $ vi cap.sh 
    $ bash cap.sh p1 p2 p3 P4 5 6 7 8 9 0 3 4
    4
    $ cat cap.sh 
    echo ${12}
    

    通配符

    通配符.PNG

    循环:

    • 进入条件,退出条件
    • 表达式:
    for 变量 in 列表;do
        循环体
    done
    #或者:
    for 变量 in 列表
    do
         循环体
    done
    
    • 如何生成列表:
    • {1..100}
    • seq [起始数 [步进长度]] 结束数
    • 练习:写一个脚本计算1..100之间数的合
    • 第一种方法:使用for
    $ nano cap.sh
    $ bash cap.sh
    The sum is :5050.
    $ cat cap.sh
    #! /bin/bash
    #
    declare i SUM=0
    for I in {1..100}; do
      let SUM=$[$SUM+$I]  # 试试不加let
    done
    
    echo "The sum is :$SUM."
    
    • 第二种方法:使用while循环
    $ vi sh1.sh
    $ bash sh1.sh 
    The SUM is :5050.
    $ cat sh1.sh 
    #!/bin/bash
    s=o # 这是累加的变量
    i=0 # 这是累计的数值,1,2,3...
    while [ "$i" != "100" ]
    do 
      i=$(($i+1)) #每次i都会加1
      s=$(($s+$i))  #s每次都会加一次i
    done
    echo  "The SUM is :$s."
    

    while循环

    • 适用于循环次数未知的场景,要有推出条件。
    • 语法
    while CONDITION ;do
      statemet
      ...
    done
    
    • 计算{1..100}的和
    ubuntu@VM-0-3-ubuntu:~$ ./sh08.sh 
    SUM is 5050
    ubuntu@VM-0-3-ubuntu:~$ cat sh08.sh
    
    #!/bin/bahs
    #
    declare -i I=1
    declare i SUM=o
    
    while [ $I -le 100 ]; do
      let SUM+=$I
      let I++
    done
    echo "SUM is $SUM"
    

    生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
    请猛戳下面链接
    B站链接:https://m.bilibili.com/space/338686099

    YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists

    生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA

    学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw

    相关文章

      网友评论

        本文标题:linux Day19:循环for while

        本文链接:https://www.haomeiwen.com/subject/pechxqtx.html