• Linux中的shell编程


    shell编程

    重定向

    cat >temp

    输入内容到temp文件中,如果存在temp则覆盖,没有则新建

    cat >>temp

    追加内容

    cat temp1>>temp2

    将temp1中的内容追加到temp

    命令执行控制符号

    ; 一个命令行执行多条语句

    命令替换符

    1.双引号:用于带空格的字符串

    2.单引号 阻止shell解析字符串

    3.单撇反引号:将执行命令的结果放到变量里

    转义符

    variable=\$bva

    \阻止shell对”$“元字符的解释工作

    变量

    • 变量名=字符串

    • $变量名 或 ${变量名} 访问变量

    unset 变量名取消变量名

    final变量

    readonly 变量名

    变量的数值运算

    无法直接进行,可通过expr运算符

    expr $num1 运算符 $num2
    
    • 1

    如果运算符为*,&,|,<,>必须用\转义符使其失去特殊含义

    命令别名

    alias

    直接使用可查看命令别名

    自定义命令别名

    alias 别名=”原命令“

    unalias 别名 取消别名

    历史命令

    history [-c] [n]

    -c 清空(clear)

    -n n为数字,即显示几条命令

    ==!!==上一条命令,感觉用处不大

    第一个shell脚本

    #! /bin/bash
    # 注释
    echo ”hello world“
    date
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    执行

    1.授权

    chmod 775 脚本名

    chmod a+x 脚本名

    2.用 source 脚本名执行

    交互式shell脚本

    read -p "please input your name" name
    echo "hello " $name
    
    • 1
    • 2

    执行

    bash name
    
    • 1

    注释

    单行注释#
    多行注释:<

    分支结构

    在这里插入图片描述
    在这里插入图片描述

    逻辑判断

    只支持数字的关系运算符

    -eq等于
    - neqnot equal
    -gtA greater than B
    -ltA less than B
    -ge
    -le
    -a and (&&)
    -o or (||)
    !

    脚本调试

    bash [-x][-n] 脚本名
    
    • 1
    -x执行脚本本同时显示脚本语句
    -n检查语法错误不执行

    函数

    在这里插入图片描述

    字符串

    • 获取字符串长度
    ${#string};
    ${#string[0]}
    
    • 1
    • 2
    • 提取子字符串
    ${string:1:4}
    
    • 1

    数组

    • 定义数组

    值与值之间用空格隔开

    数组名=(值1 值2 ... 值n)
    
    • 1
    • 读取数组元素
    ${数组名[下标]} 读取单个
    ${数组名[@]} 读取全部
    
    • 1
    • 2
    • 读取数组长度
    ${#数组名[@]}
    
    • 1

    |

    函数

    [外链图片转存中…(img-AZme5QDw-1655274286263)]

    字符串

    • 获取字符串长度
    ${#string};
    ${#string[0]}
    
    • 1
    • 2
    • 提取子字符串
    ${string:1:4}
    
    • 1

    数组

    • 定义数组

    值与值之间用空格隔开

    数组名=(值1 值2 ... 值n)
    
    • 1
    • 读取数组元素
    ${数组名[下标]} 读取单个
    ${数组名[@]} 读取全部
    
    • 1
    • 2
    • 读取数组长度
    ${#数组名[@]}
    
    • 1
  • 相关阅读:
    使用Spire.PDF for Python插件从PDF文件提取文字和图片信息
    安卓APP源码和设计报告——快递查询录入系统
    PB转纯BS工具
    Auto.js中的脚本引擎
    自顶向下语法分析(top-down parsing)
    使用注解读取properties配置文件
    电脑重装系统后鼠标动不了该怎么解决
    Laf 云开发平台及其实现原理
    TikTok英国站的热门标签(一)
    arm-linux实现onvif server+WS-UsernameToken令牌验证
  • 原文地址:https://blog.csdn.net/qq_51050526/article/details/133896265