shell脚本速查手册
前言
2021 年,阿里云开发者社区联手 Linux 中国开源社区,为广大的运维工程师、开发者提 供了一套内容丰富、场景丰富的 Linux 入门课程。本手册为其中的「Shell 脚本入门」、 「Shell 脚本进阶」的补充手册,方便学生学习。
这本书适用于所有的 Unix 用户和 Linux 用户。有了这本书,你就可以编写 Bash 脚 本,用更短的时间,更轻松、更稳定地完成更多的工作。
本电子书为 Linux 中国开源社区为运维工程师倾心打造,旨在为运维工程师们提供一个快 速、便捷的查询手册。本书以本书以普及率最高的 Bash 为基础进行撰写,具体内容组织 结构如下:
第一章节介绍 Shell 脚本的编写基础,介绍运维工程师在工作时编写 Shell 脚本的一些 基本信息
第二章节介绍 Shell 脚本编写时的一些进阶技巧。
第三章节介绍 Shell 脚本编写过程中一些常用的命令和用法。
第四章节介绍一些常见的 Bash 资源库,帮助运维工程师在编写脚本时,快速实现想要的 效果。
Bash 脚本基础
1. Bash 脚本定义变量
在使用 Bash 编写脚本时,你可以根据使用的场景,定义不同类型的变量,从而完成整个 脚本的开发。
脚本变量类型
Bash 脚本的变量可以细分为以下三个类型:
**(1) 局部变量:**局部变量在脚本或命令中定义,仅在当前 shell 实例中有效,其他 shell 启动的程序不能访问局部变量;
**(2) 环境变量:**所有的程序,包括 shell 启动的程序,都能访问环境变量,有些程序需要 环境变量来保证其正常运行。必要的时候 shell 脚本也可以定义环境变量;
(3) shell 变量:shell 变量是由 shell 程序设置的特殊变量。shell 变量中有一部分是环 境变量,有一部分是局部变量。
定义变量和使用变量
在定义和使用变量时,应遵循如下描述:
(1) 定义变量:name=value 需要注意,等号两侧不能有空格;
(2) 使用变量:echo $name 或 echo ${name};
(3) 定义局部变量:local name="test"
(4) 定义只读变量:readonly name;
(5) 删除变量:unset name。
Bash 字符串
在 Bash 中,字符串可以是单引号或双引号,二者的区别如下:
单引号:单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;单引号字 串中不能出现单独一个的单引号,但可以成对出现,作为字符串拼接使用;
双引号:双引号里可以有变量且可以出现转义字符。