美文网首页
2019-01-25

2019-01-25

作者: 一笑忘今生 | 来源:发表于2019-01-25 18:52 被阅读0次

    Linux系统Shell编程指南

    前言

    适合人群:有类似C编程基础的人

    一、Shell编程介绍

    • Shell解释型语言,一行一行执行,报错中断
    • 可以使用Linux命令
    DATE_01=`date`
    DATE_02=$(date)
    

    二、Shell技术实战

    1.变量、注释和输出

    #声明变量
    data=1.666
    #-r开启转义 \n换行 \r不换行 双引号可引用变量
    echo -r "output${data}\n"
    #-左对齐 +右对齐 .1保留一位小数四舍五入
    printf "%-2.1f" $data
    

    2.字符串、数组、字典

    #必须先声明
    declare -A dic
    dic=([key1]="value1" [key2]="value2" [key3]="value3")
    
    #打印指定key的value
    echo ${dic["key1"]}
    #打印所有key值
    echo ${!dic[*]}
    #打印所有value
    echo ${dic[*]}
    #字典添加一个新元素
    dic+=([key4]="value4")
    
    #遍历key值
    for key in $(echo ${!dic[*]})
    do
        echo "$key : ${dic[$key]}"
    done
    
    #数组
    list=("value1" "value2" "value3")
    #打印指定下标
    echo ${list[1]}
    #打印所有下标
    echo ${!list[*]}
    #打印数组下标
    echo ${list[*]}
    #数组增加一个元素
    list=("${list[@]}" "value3")
    
    #按序号遍历
    for i in "${!arr[@]}"; do 
        printf "%s\t%s\n" "$i" "${arr[$i]}"
    done
    
    #按数据遍历
    for NUM in ${ARR[*]}
    do
        echo $NUM
    done
    

    3.流程控制结构

    #if
    a=1
    if (( $a<2 ))
    then
    echo $a
    #elif 可选
    #else 可选
    fi
    #一行执行 if(( $a<2 ));then echo $a;fi
    
    #for 类C注意括号里变量不需要加$
    for(( i=1;i<3;i++ ))
    do
    echo $i
    done
    #一行执行 for(( i=1;i<3;i++ ));do echo $i;done
    
    #while
    t=1
    while(( t<3 ))
    do
    echo $t
    ((t=t+1))) #注意shell加法使用,或t=`expr $t+1`
    done
    #一行显示 while(( $t<3 ));do echo $t;((t=t+1));done
    

    4.函数和引用

    #函数
    demoFun(){
        echo "这是我的第一个 shell 函数!"
    }
    echo "-----函数开始执行-----"
    
    #执行函数
    demoFun 
    echo "-----函数执行完毕-----"
    
    参考表

    函数内置变量表

    参数处理 说明
    $# 传递到脚本的参数个数
    $* 以一个单字符串显示所有向脚本传递的参数
    $$ 脚本运行的当前进程ID号
    $! 后台运行的最后一个进程的ID号
    $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
    $- 显示Shell使用的当前选项,与set命令功能相同。
    $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

    关系运算符

    运算符 说明
    -eq 检测两个数是否相等,相等返回 true。
    -ne 检测两个数是否不相等,不相等返回 true。
    -gt 检测左边的数是否大于右边的,如果是,则返回 true。
    -lt 检测左边的数是否小于右边的,如果是,则返回 true。
    -ge 检测左边的数是否大于等于右边的,如果是,则返回 true。
    -le 检测左边的数是否小于等于右边的,如果是,则返回 true。

    逻辑运算符

    运算符 说明
    && 逻辑的 AND
    逻辑的 OR

    三、生产环境使用规范

    作者建议

    将技术实战打印下来,定期默写复习,用时信手拈来!编码规范只能使用中慢慢养成。
    点击-在线执行shell

    相关教程:

    个人编辑
    作者:一笑忘今生

    相关文章

      网友评论

          本文标题:2019-01-25

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