为什么要学习 Shell 编程

  1. Linux 运维工程师在进行服务器集群管理时,需要编写 Shell 程序来进行服务器管理

  2. 对于 JavaEE 和 Python 程序员来说,工作的需要,你的老大会要求你编写一些 Shell 脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本

  3. 对于大数据程序员来说,需要编写 Shell 程序来管理集群

Shell 是什么

Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动,挂起,停止甚至是编写一些程序

image_2023-01-07-16-19-56

Shell 脚本的执行方式

  • 脚本格式要求
  1. 脚本以 #!/bin/bash 开头

  2. 脚本需要有可执行权限

  • 脚本的常用执行方式
  1. 输入脚本的绝对路径或相对路径

说明:首先要赋予 xxx.sh 脚本的 + x 权限,再执行脚本

  1. sh + 脚本:sh hello.sh

说明:不用赋予脚本 + x 权限,直接执行即可

Shell 变量介绍

  1. Linux Shell 中的变量分为,系统变量和用户自定义变量

  2. 系统变量:HOME,HOME,PWD,SHELL,SHELL,USER 等等,比如:echo $HOME 等等

  3. 显示当前 shell 中所有变量:set

Shell 变量的定义

基本语法:

  1. 定义变量:变量 = 值

  2. 撤销变量:unset 变量

  3. 声明常量变量 (只读):readonly 变量,注意:不能 unset

  • 演示:
#!/bin/bash
#echo "hello,world!"
#定义变量
A=300
#输出变量 A 需要前面加上 $
echo $A #输出结果 300
#输出 A=300, 类似于 java 的拼接输出,先将 A = 输出再输出 A 变量的值
echo A=$A #输出结果 A=300
#同第二个效果只是加上了双引号
echo "A=$A" #输出结果 A=300
#撤销变量 A
unset A
echo A=$A #输出结果 A=
#定义只读变量
readonly B=200
echo B=$B #输出结果 B=200
unset B #hello.sh: line 17: unset: B: cannot unset: readonly variable  执行报错:无法设置渎职变量

定义变量的规则

  1. 变量名称可以由字母,数字和下划线组成,但是不能以数字开头.5A=200 (错误的)

  2. 等号两侧不能有空格

  3. 变量名称一般习惯为大写

将命令的返回值赋给变量

  1. A= date 反引号,运行里面的命令,并把结果返回给变量 A

  2. A=$(date) 等价于反引号