为什么要学习 Shell 编程
Linux 运维工程师在进行服务器集群管理时,需要编写 Shell 程序来进行服务器管理
对于 JavaEE 和 Python 程序员来说,工作的需要,你的老大会要求你编写一些 Shell 脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本
对于大数据程序员来说,需要编写 Shell 程序来管理集群
Shell 是什么
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动,挂起,停止甚至是编写一些程序
Shell 脚本的执行方式
- 脚本格式要求
脚本以 #!/bin/bash 开头
脚本需要有可执行权限
- 脚本的常用执行方式
- 输入脚本的绝对路径或相对路径
说明:首先要赋予 xxx.sh 脚本的 + x 权限,再执行脚本
- sh + 脚本:sh hello.sh
说明:不用赋予脚本 + x 权限,直接执行即可
Shell 变量介绍
Linux Shell 中的变量分为,系统变量和用户自定义变量
系统变量:PWD,USER 等等,比如:echo $HOME 等等
显示当前 shell 中所有变量:set
Shell 变量的定义
基本语法:
定义变量:变量 = 值
撤销变量:unset 变量
声明常量变量 (只读):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 执行报错:无法设置渎职变量 |
定义变量的规则
变量名称可以由字母,数字和下划线组成,但是不能以数字开头.5A=200 (错误的)
等号两侧不能有空格
变量名称一般习惯为大写
将命令的返回值赋给变量
A=
date
反引号,运行里面的命令,并把结果返回给变量 AA=$(date) 等价于反引号