Shell脚本和编程 | 青训营

学习 shell 的价值:

1.Linux 服务器的基本操作和管理(都需要通过shell完成)

  • 前端 Node.js 服务的进程管理、问题排查、资源监控等运维操作
  • 3.使用 shell 编写 TCE、SCM、Docker 脚本,完成服务编译和部署

    终端

    获取用户输入、展示运算结果的硬件设备

    ......

    shell的发展历史 Ken Thompson(来自贝尔实验室)在1971年为UNIX 开发了第一个shell,称为V6 shell -> Stephen Bourne 在贝尔实验室为V7 UNIX 所开发的 Bourne shell, 即sh -> 开源组织 GNU 为了取代 Bourne shell 开发的 Bourne-Again shell, 即 Bash

    shell的语法

    类型: 自定义变量 环境变量 系统环境变量

    变量的赋值等号两侧不可以有空格

    # 变量名=变量值(等号左右不能有空格)
    page_size=1
    page_num=2
    1. 将命令复制给变量
    1s=1s
    1. 将命令结果赋值给变量
    file list=$(ls -a)
    1. 默认字符串,不会进行 +运算
    total=page_size*page_num
    1. 声明变量为整型
    let total=page size*page_num
    declare -i total=page_size*page_num
    1. 导出环境变量
    export total
    declare -x total
    

    declare [+/-] 选项 变量

    类型: 算数运算符、 逻辑运算符、 比较运算符、 引号、 圆括号、 命令连接、 后台运行。

    作用: 常规运算; 部分引用, 仅仅 $\ 保留作用; 完全引用,原样输出; 执行命令; 算数运算; 执行命令; cmd1 执行完且返回码非O,则继续执 行cmd2; cmd1 执行完且返回码为0,则继续执 行cmd2; cmd1、cmd2串行执行; 让命令在后台运行,可与nohup一起使 用;

    重定向:......

    函数:shell自上而下执行,函数必须在使用前定义 函数获取变量和shell script类似,0代表函数名,后续参数通过0代表函数名, 后续参数通过 0代表函数名,后续参数通过1、2...获取函数内return仅仅表示函数执行状态,不代表函数执行结果返回结果一般使用echo、printf,在外面使用2 ...获取 函数内return 仅仅表示函数执行状态,不代表函数执行结果 返回结果一般使用echo、printf,在外面使用2...获取函数内return仅仅表示函数执行状态,不代表函数执行结果返回结果一般使用echo、printf,在外面使用()、获取结果 如果没有return,函数状态是上一条命令的执行状态,存储在$?中