1. 为什么要学习 Shell 编程
-
- Linux 运维工程师在进行服务器集群管理时,需要编写 Shell 程序来进行服务器管理。
- 对于 JavaEE 和 Python 程序员来说,工作的需要,会要求你编写一些 Shell 脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。
- 对于大数据程序员来说,需要编写 Shell 程序来管理集群
2. Shell 是什么
- Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。看一个示意图:
3. Shell 脚本的执行方式
- 脚本格式要求
-
- 脚本以
#!/bin/bash
开头 - 脚本需要有可执行权限
- 编写第一个 Shell 脚本
需求说明:创建一个 Shell 脚本,输出 hello world!
vim hello.sh
#!/bin/bash
echo "hello,world"
- 脚本的常用执行方式
-
- 方式 1(输入脚本的绝对路径或相对路径)
说明:首先要赋予 hello.sh
脚本的+x
权限, 再执行脚本
比如 ./hello.sh
或者使用绝对路径 /home/test/hello.sh
- 方式 2(sh+脚本)
说明:不用赋予脚本+x
权限,直接执行即可。
比如 sh hello.sh
, 也可以使用绝对路径
4. Shell 的变量
Shell 变量介绍
Linux Shell 中的变量分为,系统变量和用户自定义变量。
系统变量:$HOME、$PWD、$SHELL、$USER
等等,比如: echo $HOME
等等
5. shell 变量的定义1
- 基本语法
-
- 定义变量:
变量名=值
,注意:不要用空格 - 撤销变量:
unset 变量
- 声明静态变量:
readonly 变量
,注意:不能 unset
- 快速入门
- 案例 1:定义变量 A
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo $A
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo A=$A
echo "A=$A"
- 案例 2:撤销变量 A
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo "A=$A"
# 案例2:撤销变量A
unset A
echo "A=$A"
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo "A=$A"
# 案例2:撤销变量A
unset A
echo "A=$A"
# 案例3:声明静态的变量 B=2,不能 unset
readonly B=2
echo "B=$B"
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo "A=$A"
# 案例2:撤销变量A
unset A
echo "A=$A"
# 案例3:声明静态的变量 B=2,不能 unset
readonly B=2
echo "B=$B"
unset B
6. shell 变量的定义2
- 定义变量的规则
-
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。
5A=200
(×) - 等号两侧不能有空格
- 变量名称一般习惯为大写, 这是一个规范,我们遵守即可
- 将命令的返回值赋给变量
-
- A=`date’ ,反引号,运行里面的命令,并把结果返回给变量 A
- A=$(date) 等价于反引
A=`date`=$(date)
- 案例:将指令返回的结果赋给变量
# 将指令返回的结果赋给变量
C=`date`
echo “C=$C”
```bash
# 将指令返回的结果赋给变量
D=$(date)
echo “D=$D”