美文网首页
bash脚本编程

bash脚本编程

作者: 麟之趾a | 来源:发表于2020-05-15 18:53 被阅读0次

    bash脚本之编程交互

    • 脚本参数
    • 用户交互,通过键盘输入数据,从而完成变量的赋值操作
    read [option] NAME
      -p  提示信息
      -t  输入超时时间
    [root@db02 ~]# read NAME AGE
    cao  21
    [root@db02 ~]# echo $NAME
    cao
    [root@db02 ~]# echo $AGE
    21
    [root@db02 ~]# read NAME AGE SEX
    cao 22 
    [root@db02 ~]# echo $NAME
    cao
    [root@db02 ~]# echo $AGE
    22
    [root@db02 ~]# echo $SEX
    
    [root@db02 ~]# read NAME AGE 
    cao 22 man
    [root@db02 ~]# echo $NAME
    cao
    [root@db02 ~]# echo $AGE
    22 man
    [root@db02 ~]# read -p "please input your name" NAME
    please input your namecao
    [root@db02 ~]# echo $NAME
    cao
    

    bash -n 脚本 检查脚本文件语法是否有错误
    bash -x 脚本 调试执行

    shell语言执行顺序

    • 顺序执行
    • 选择执行 if case
    • 循环执行 for ,while,until

    选择执行

    • &&,||
    • if 语句
    • case语句

    if 语句

    # 单分支if语句
    if  CONDITION;then
        if-true-分支
    fi
    
    #多分支if语句
    if CONDITION;then
        if-true-分支
    else
        if-false-分支
    fi
    
    if CONDITION;then
        条件1为真分支
    elif CONDITION;then
        条件2为真分支
    elif CONDITION;then
        条件3 为真分支
    ...
    elif CONDITION; then
        条件n,为真分支
    else
        所有条件均不满足时的分支
    fi
    # 注意:分支只会执行其中一个,首先测试为真先执行,if语句可嵌套
    

    循环说明

    循环执行:将一段代码重复执行0次,1或多次
    进入条件: 只要条件满足时,才会进行循环
    退出条件:每个循环体都应有退出条件,已有机会退出循环

    for 循环格式

    两种格式:
    1) 变量列表
    2)控制变量
    for VARAIBLES IN LIST;do
    循环体
    done
    进入条件:只要列表中有元素,即可进入循环
    退出条件:列表中的元素遍历完成
    LIST:
    1) 直接给出
    2)整数列表
        a) {start..end}
        b)  seq [start] [incremtal] last
              seq 1 2 10 生成奇数列表
              seq 10
              seq 1 10
    3) 返回列表命令
    列表返回的内容已回车符或空格为分隔符`ls /`
    返回命令列表的命令使用通配符
    4) 变量引用 $@,$*
    # 求100以内整数之和
    [root@ceshi srcipts]# cat sum.sh 
    #!/bin/bash
    declare -i sum=0
    for i in {1..100};do
       let sum+=$i
    done
    echo $sum
    
    

    while 循环

    while CONDTION;do
    循环体;
    循环控制变量修正表达式
    done
    CONDTION 为真进入,CONDTION为假退出
    # 求100之内整数之和
    [root@ceshi srcipts]# cat while.sh 
    #!/bin/bash
    declare -i sum=0
    declare -i i=1
    while [ $i -le 100 ];do
    sum=$[${sum}+${i}]
    let i++
    done
    echo $sum
    

    如果计算1到10万,for中LIST列表,10万个数据都得先加载到内存中,while只有一个变量放在内存,在大数据量的情况下,for性能低下

    until循环

    until CONDITION do;
    循环体
    循环控制变量修正表达式
    done
    until CONDTION为假进入,CONDITON为真退出
    

    相关文章

      网友评论

          本文标题:bash脚本编程

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