Shell脚本和编程 | 青训营

86 阅读2分钟

学习 shell 的价值:

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

  1. 前端 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
# 将命令复制给变量
1s=1s
# 将命令结果赋值给变量
file list=$(ls -a)
# 默认字符串,不会进行 +运算
total=page_size*page_num
# 声明变量为整型
let total=page size*page_num
declare -i total=page_size*page_num
# 导出环境变量
export total
declare -x total

declare [+/-] 选项 变量

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

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

重定向:......

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

Shell编程可以用于开发新命令,提高开发处理效率。它可以提供后台处理机制,支持管道、命令替换、自动补齐等功能。Shell在Unix、Linux、macOS等类Unix操作系统下使用命令行界面(CLI)进行脚本编程的技术。通过Shell编程,用户可以利用shell合并编程语言以控制进程和文件,以及启动和控制其他程序。