Linux之Shell编程基础

1. 为什么要学习 Shell 编程

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

2. Shell 是什么

  • Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 Shell 来启动、挂起、停止甚至是编写一些程序。看一个示意图:
    在这里插入图片描述

3. Shell 脚本的执行方式

  • 脚本格式要求
  1. 脚本以#!/bin/bash 开头
  2. 脚本需要有可执行权限
  • 编写第一个 Shell 脚本
    需求说明:创建一个 Shell 脚本,输出 hello world!
vim hello.sh
#!/bin/bash
echo "hello,world"
  • 脚本的常用执行方式
  1. 方式 1(输入脚本的绝对路径或相对路径)
    说明:首先要赋予 hello.sh 脚本的+x 权限, 再执行脚本
    比如 ./hello.sh 或者使用绝对路径 /home/test/hello.sh
    在这里插入图片描述
    使用绝对路径执行:
    在这里插入图片描述
  2. 方式 2(sh+脚本)
    说明:不用赋予脚本+x 权限,直接执行即可。
    比如 sh hello.sh , 也可以使用绝对路径
    在这里插入图片描述

4. Shell 的变量

Shell 变量介绍

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

  2. 系统变量:$HOME、$PWD、$SHELL、$USER 等等,比如: echo $HOME 等等
    在这里插入图片描述

  3. 显示当前 shell所有变量set
    在这里插入图片描述

5. shell 变量的定义1

  • 基本语法
  1. 定义变量:变量名=值,注意:不要用空格
  2. 撤销变量:unset 变量
  3. 声明静态变量:readonly 变量,注意:不能 unset
  • 快速入门
  1. 案例 1:定义变量 A
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo $A

在这里插入图片描述
加上输出变量名:

#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo A=$A

在这里插入图片描述
也可以用双引号括起来,输出结果是一样的:

echo "A=$A"
  1. 案例 2:撤销变量 A
#!/bin/bash
# 案例1:定义变量A
A=100
# 输出变量需要加上$
echo "A=$A"
# 案例2:撤销变量A
unset A
echo "A=$A"

在这里插入图片描述
3. 案例 3:声明静态的变量 B=2,不能 unset

#!/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(撤销)

#!/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

在这里插入图片描述

  • 设置行号:set nu
    在这里插入图片描述

6. shell 变量的定义2

  • 定义变量的规则
  1. 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(×)
  2. 等号两侧不能有空格
  3. 变量名称一般习惯为大写, 这是一个规范,我们遵守即可
  • 将命令的返回值赋给变量
  1. A=`date’ ,反引号,运行里面的命令,并把结果返回给变量 A
  2. A=$(date) 等价于反引
A=`date`=$(date)
  • 案例:将指令返回的结果赋给变量
# 将指令返回的结果赋给变量
C=`date`
echo “C=$C

在这里插入图片描述
或者

```bash
# 将指令返回的结果赋给变量
D=$(date)
echo “D=$D

在这里插入图片描述

原文地址:https://www.cnblogs.com/xdr630/p/15254618.html