• Shell 结构化命令


    条件判断语句:

    格式:[ 判断内容 ]

    注意:内容和[ ]之间有空格 (0为thue ,非0为false)

    常见的条件判断:

    字符串比较:

    •   =   !=   <   >
    • -n   长度是否不为0
    • -z    长度是否为0

    注意使用 <  和  >  必须在前面加一个转义符

    整数的比较:

    • -lt     小于
    • -le    小于等于
    • -eq    等于
    • -gt     大于
    • -ge    大于等于
    • -ne    不等于

    权限的判断:

    • -r    读
    • -w   写
    • -x   执行
    • -s   为空

    文件类型的判断:

    • -f  文件存在且是一个常规文件
    • -e  文件存在
    • -d  文件存在并且是一个目录

    if-then 语句

    单分支语句:

    格式一:

    格式二: 

    注意: if中的判定是通过该命令的退出状态码决定(0  运行then   非0  不运行then)

    多分支语句:

    结构一:

     结构二:

     

     text 命令 用来测试的一系列参数和值

    • text   默认为 false
    • text  字符串  测试是否有内容

    复合条件测试

    • [ condition1 ] && [ condition2 ]
    • [ condition1 ] || [ condition2 ]

    双括号 可以中使用高级数学表达式

    (( expression ))

     双方括号 拥有双括号的功能,新加了 模式匹配

    在模式匹配中,可以定义一个正则表达式(有些shell不支持双方括号)
    后面章节会了解

    case 流程控制

    格式:

     

    for循环

    注意:当列表值中存在单引号时,结果会发生错误

     解决方法:

    • 使用转义字符(反斜线)来将单引号转义
    • 使用双引号来定义用到单引号的值

     

     

     IFS 内部字段分隔符(用于获取文件内容)

    bash shell 会把下面三个当作字段分割符:

    • 空格
    • 制表符
    • 换行符

    修改 IFS: IFS=$' 符号  ' 使之只识别 ' '内的符号(可以同时设置多个符号)

     格式二:(与C语言for相似)

     

    while循环

     until工作方式与while相反

    退出状态码不为0 才会执行内容

    break  退出循环

    break  n   可以选择跳出的循环层数(n默认为1)

    continue  跳出本次循环

    处理循环后的数据

    可以在done后添加重定向和管道

    read 读取控制台输入

    read [选项] (变量)

    选项功能
    -p指定读取值的提示符
    -t指定读取值时的等待时间(秒)
    -d后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
    -n 后跟一个数字,定义输入文本的长度,很实用。
    -r屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了
    -s输入的数据不在显示器中显示

  • 相关阅读:
    《30天吃掉那只 TensorFlow2.0》 一、TensorFlow的建模流程
    即时通讯技术文集(第21期):后端架构设计基础入门系列 [共15篇]
    探索人工智能的边界:GPT 4.0与文心一言 4.0免费使用体验全揭秘!
    ASP WebShell 后门脚本与免杀
    【C# 7.0 in a Nutshell】第3章 在C#中创建类型——类
    IT专业入门,高考假期预习指南
    基于神经网络和遗传算法的unity开发框架
    《树莓派项目实战》第七节 使用声音传感器检测声音
    OpenCV|简单绘制一个矩形
    JAVA智慧防疫上报系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/126812760