Bash脚本编写
Bash 脚本
什么是 Bash 脚本
Bash 脚本是用 Bash Shell 编写的脚本程序。Bash(Bourne Again Shell)是一个 Unix shell 和命令语言,广泛用于 Linux 和 macOS 系统。Bash 脚本可以帮助我们自动化重复性任务、执行系统管理任务以及编写复杂的应用程序逻辑。
为什么使用 Bash 脚本
- 自动化任务:通过编写脚本,可以自动化处理大量的系统管理和配置任务,减少手动操作。
- 提高工作效率:脚本可以快速执行多条命令,减少手动输入,提高工作效率。
- 跨平台兼容性:Bash 是大多数 Unix 系统(包括 Linux 和 macOS)的默认 Shell,编写的脚本可以在这些系统上无缝运行。
- 强大的功能:Bash 提供了丰富的编程结构(如条件判断、循环、函数等)和内置命令,能够处理复杂的任务。
Bash 脚本创建
1. 创建脚本文件
使用 touch
命令创建一个新的脚本文件,Bash 脚本文件使用扩展名.sh
。
toush bash_script.sh
2. 编辑脚本文件
使用 vim
或 vi
编辑器打开脚本文件进行脚本编写,也可使用其它的文本编辑器,例如 nano
或 gedit
。
vim bash_script.sh
3. 写入代码
使用编辑器打开文件后,按 i
键进行编辑。
#!/bin/bash
echo "Hello World"
#!/bin/bash
:这一行被称为“shebang”,告诉系统使用/bin/bash
解释器来执行这个脚本。echo "Hello World"
:这一行代码使用echo
命令在终端输出 “Hello World”。
4. 保存并退出编辑器
在 vim
中,按 Esc
键进入命令模式,输入 :wq
并按 Enter
保存并退出。(注意使用英文)。
Bash 脚本执行
在编写好脚本后,需要赋予脚本执行权限,并运行脚本。
1. 赋予脚本执行权限后再运行脚本
使用 chmod
命令给脚本文件添加执行权限
chmod +x bash_script.sh
chmod
:改变文件权限的命令。+x
:表示添加执行权限。bash_script.sh
:文件名。
2. 执行脚本
./bash_script.sh
输出结果:
Hello World
./
:表示当前目录。bash_script.sh
:文件名。
可以直接使用 bash 文件名
运行脚本。
bash ./bash_script.sh
Bash 脚本注释
注释对于任何编程语言都是不可忽视的重要组成部分,编写者通过注释来为其他人提供解释或提示,能有效提高代码的可读性。Bash 同其他编程语言一样提供了两种类型注释的支持。
单行注释
单行注释
:使用 #
开头。
# 这是一个单行注释
echo "Hello World" # 这也是一个单行注释
结果:
Hello World
多行注释
多行注释
:多行注释可以使用 <<BLOCK
和 BLOCK
或 : ''
包含注释内容
<<BLOCK
这是一个多行注释。
它可以包含多行内容。
BLOCK
: '
这是另一个多行注释。
它也可以包含多行内容。
'
read 命令
read
命令用于从终端或文件中读取输入。
read <variable_name>
常用参数:
-p
:选项在同一行上输入。read -p "Enter your name: " user_name
-s
:静默输入。read -s -p "Enter your password: " password
-a
:对数据进行多个输入。read -a array
算术运算
在 Bash 中运行 11 种算术运行符。用例执行基本的数学计算。
加法
加法运算用于将两个数相加,使用 +
号表示
示例:
result=$((7+2))
echo "7 + 2 = $result"
结果:
7 + 2 = 9
减法
减法运算用于将一个数从另一个数中减去,使用 -
号表示。
示例:
result=$((7-2))
echo "7 - 2 = $result"
结果:
7 - 2 = 5
乘法
乘法运算用于将两个数相乘。
示例:
result=$((7 * 2))
echo "7 * 2 = $result"
结果:
7 * 2 = 14
除法
除法运算用于将一个数除以另一个数,使用 /
表示。
示例:
result=$((18 / 2))
echo "18 / 2 = $result"
结果:
18 / 2 = 9
求幂
求幂运算用于计算一个数的幂,使用 **
表示。
示例:
result=$((10 ** 2))
echo "10^2 = $result"
结果:
10^2 = 100
模
模运算用于计算两个数相除的余数,使用 %
表示。
示例
result=$((11 % 3))
echo "11 % 3 = $result"
结果:
11 % 3 = 2
常量递增变量
将变量的值增加一个常量,并将结果存储回该变量,使用 +=
表示。
示例:
x=7
let "x += 7"
echo "x += 7 -> $x"
输出:
x += 7 -> 14
常量递减变量
将变量的值减少一个常量,并将结果存储回该变量,使用 -=
表示。
示例:
x=7
let "x -= 2"
echo "x -= 2 -> $x"
输出:
x -= 2 -> 5
变量乘以常量
将变量的值乘以一个常量,并将结果存储回该变量,使用 *=
表示。
示例:
x=7
let "x *= 2"
echo "x *= 2 -> $x"
输出:
x *= 2 -> 14
变量除以常量
将变量的值除以一个常量,并将结果存储回该变量,使用 /=
表示。
示例:
x=18
let "x /= 2"
echo "x /= 2 -> $x"
输出:
x /= 2 -> 9
变量除以常量的余数
将变量的值除以一个常量并取余数,并将结果存储回该变量,使用 %=
表示。
示例:
x=11
let "x %= 3"
echo "x %= 3 -> $x"
输出:
x %= 3 -> 2
关系运算符
关系运算符用于比较两个数值或字符串,在脚本中用于条件判断。下面我们逐一介绍每种运算符,并提供详细的示例代码。
赋值
将一个变量的值赋给另一个变量,使用 =
表示。
示例:
a=5
b=$a
echo "b = $b"
输出:
b = 5
等于
检查两个数值或字符串是否相等,使用==
表示。
示例:
a=5
b=5
if [ $a == $b ]; then
echo "$a 等于 $b"
else
echo "$a 不等于 $b"
fi
输出:
5 等于 5
不相等
检查两个数值或字符串是否不相等,使用 !=
表示。
示例:
a=5
b=6
if [ $a != $b ]; then
echo "$a 不等于 $b"
else
echo "$a 等于 $b"
fi
输出:
5 不等于 6
检查两个数字是否相等
比较两个数字是否相等,使用 -eq
表示。
示例:
if [ 1 -eq 1 ]; then
echo "1 等于 1"
else
echo "1 不等于 1"
fi
输出:
1 等于 1
检查两个数字是否不相等
比较两个数字是否不相等,使用 -ne
表示。
示例:
if [ 1 -ne 2 ]; then
echo "1 不等于 2"
else
echo "1 等于 2"
fi
输出:
1 不等于 2
检查左边数是否大于右边数
比较左边的数字是否大于右边的数字,使用 -gt
表示。
示例:
if [ 2 -gt 1 ]; then
echo "2 大于 1"
else
echo "2 不大于 1"
fi
输出:
2 大于 1
检查左边数是否小于右边数
比较左边的数字是否小于右边的数字,使用 -lt
表示。
示例:
if [ 1 -lt 2 ]; then
echo "1 小于 2"
else
echo "1 不小于 2"
fi
输出:
1 小于 2
检查左边数是否大于等于右边数
比较左边的数字是否大于或等于右边的数字,使用 -ge
表示。
示例:
if [ 2 -ge 1 ]; then
echo "2 大于或等于 1"
else
echo "2 小于 1"
fi
输出:
2 大于或等于 1
检查左边数是否小于等于右边数
比较左边的数字是否小于或等于右边的数字,使用 -le
表示。
示例:
if [ 1 -le 2 ]; then
echo "1 小于或等于 2"
else
echo "1 大于 2"
fi
输出:
1 小于或等于 2
总结
- 什么是 Bash 脚本
- 为什么使用 Bash 脚本
- Bash 脚本创建
- Bash 脚本执行
- Bash 脚本注释
- read 命令
- 算术运算
- 关系运算符