• Shell编程基础2


    内容:

    条件表达式
    if条件语句
    case条件结构语句
    练习题
    其他补充说明
    

    条件表达式

    #1.文件判断

    判断文件是否存在

    判断文件是否存在,返回方式

    判断目录是否存在

    使用变量的方法进行判断


    #2.字符串判断

    1.对于字符串的测试,一定要将字符串加双引号之后再进行比较。
    2.空格为空
    

    -z 判断字符串长度

    -n 判断字符串长度

    "串 1" == " 串 2 " 使用定义变量的方式进行判断


    #3.整数判断

    判断两数是否相等

    大于等于

    小于

    大于

    不等于


    #4.逻辑符号

    逻辑操作符与整数判断配合

    取反

    两边都为真

    至少有一边为真


    #5.【练习题】比较2个整数大小

    要求:

    1. 分别以定义变量,脚本传参以及read读入的方式写3个脚本。
    2. 用条件表达式(禁止if语句)进行判断。
    3. 将2个整数的比较结果输出到屏幕,出错需要提示。

    使用定义变量方法

    使用传参方法

    使用read读入


    if条件语句

    条件表达式和if语句可以互相转换
    

    #1.三种语法

    单分支语句

    双分支语句

    多分支语句

      单分支:一个条件一个结果

      双分支:一个条件两个结果

      多分支:多个条件多个结果


    #2.【练习题1】输入2个数字,比较大小(使用if语句结合条件表达式实现)

    3个脚本:使用直接赋值,传参,read任一种方法写3种脚本(单分支,双分支,多分支)
    

    示例脚本一:

    示例脚本二:

    示例脚本三:


    case条件结构语句

    case语法结构

    case "字符串变量" in 
      值1)
         指令1
         ;;
      值2)
         指令2
         ;;
      值*)
         指令n
    esac
    

    #1.case值的书写方式

    apple)
          echo -e "$RED_COLOR apple $RES"
          ;;
    

    也可以这样写,输入2种格式找同一个选项

    apple|APPLE)
          echo -e "$RED_COLOR apple $RES"
          ;;
    

    #2.case语句小结

    case语句就相当于多分支的if语句。case语句的优势是更规范、易读。
    case语句适合变量的值少,且为固定的数字或字符串集合。(1,2,3)或(start,stop,restart)。
    系统服务启动脚本传参的判断多用case语句,多参考rpcbind/nfs/crond脚本;菜单脚本也可以使用
    

    #3.【练习题】使用case编写一个菜单脚本


    #4.写脚本规范及注意事项

    1.变量名称不能和系统已经存在的命令等重复  free  == > Free;
    2. 判断单位要统一
    3. 脚本一行不超过一屏的一半。
    4. 能写成变量的内容尽量写成变量
    

    #5.if 与 case 对比

    if 语句类似黑名单,需要把这种错误场景封堵
    case 语句类似白名单,只要把正确结果列完整即可
    

    脚本练习【练习跑通后再补充...】


    其他补充说明

    #1.linux中产生随机数的方法


    #2.echo 命令输出带颜色字符

    彩色字体

    彩色底纹

    特效字体






    #3.显示文本中的隐藏字符

    使用cat命令查看文本中的隐藏字符

    [root@clsn ~]# cat --help
    用法:cat [选项]... [文件]...
    将[文件]或标准输入组合输出到标准输出。
    
    -A, --show-all           等于-vET
    -b, --number-nonblank    对非空输出行编号
    -e                       等于-vE
    -E, --show-ends          在每行结束处显示"$"
    -n, --number             对输出的所有行编号
    -s, --squeeze-blank      不输出多行空行
    -t                       与-vT 等价
    -T, --show-tabs          将跳格字符显示为^I
    -u                       (被忽略)
    -v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
    

    使用cat -A查看隐藏的字符


    #4.排错技巧

    sh -x  脚本.sh
    -x 开启脚本调试模式
    
    cat -A  文件.txt
    -A  查看文件的隐藏字符
    

    #5.shell 脚本段注释方法

    方法一:

    <<EOF
      内容
    EOF
    

    方法二:

    一行注释方法 → : '内容'
    段注释方法 ↓
    :' 
     http://blog.znix.top
    '
    

    :命令的应用场景

    if 条件
    then 
      :
    else
      命令
    fi
    

    #6.其他补充

    类进度条效果

    yum install -y pv 
    echo {1..20}|pv -qL 15
    

    clear 命令

    清屏 == ctrl + l
    

    搬运并学习,原博客

    https://www.cnblogs.com/clsn/p/8006210.html

  • 相关阅读:
    【转】umount 的时候报错:device is busy
    【转】linux shell 的tr命令
    给bash的提示符设置不同的颜色
    备份系统时候出现错误
    [转]Xen 的漫漫人生路
    linux/screen的指令
    扩大centos镜像的硬盘空间
    ASP.NET Web API学习资源
    svn make a tag
    query多选下拉框插件 jquerymultiselect
  • 原文地址:https://www.cnblogs.com/yachengmuCC/p/16190928.html
Copyright © 2020-2023  润新知