本节作者: 姚家园、田冬冬
最近更新日期: 2023-02-27
预计阅读时间: 15 分钟
Bash 简介¶
Bash(全称 Bourne-Again SHell)是 GNU 开发的一个 Shell。 Bash 是目前绝大多数 Linux 发行版的默认 Shell。
打开终端,使用如下命令可以查看本机的 Bash 版本:
$ bash --version
GNU bash,version 5.0.3(1)-release (x86_64-pc-linux-gnu)这一节中,我们不介绍具体的 Bash 语法,而是介绍如何编写和执行 Bash 脚本。 Linux 101 一节中已经简要介绍了 Bash 语法, 本节的最后也列出了一些 Bash 学习资源,读者可根据需要自行学习。
Bash 脚本¶
按照 Bash 语法规则编写的含有一系列指令的文本文件即称之为 Bash 脚本。
Bash 脚本一般以 .sh 作为后缀。
打开文本编辑器,新建一个文本文件,在文件中编写如下内容,并将其保存成名为
hello-world.sh 的文件,则得到一个简单的 Bash 脚本。
#!/usr/bin/env bash
#
# 输出 Hello world!
#
# 使用 echo 命令输出 Hello world
echo Hello world! # 这也是注释
# 每一句指令以换行或分号隔开
echo Hello; echo world!
# 有些命令比较长,写成多行会有利于阅读和编辑
# 每行结尾加上反斜杠,Bash 会将下一行跟当前行一起解释
echo Hello world! \
This is seismo-learn.Bash 脚本的第一行通常用于指定脚本解释器。这一行以 Shebang 字符 #! 开头,故而
也称之为 Shebang 行。Shebang 行不是必须的,但是建议加上这行。
Shebang 字符后紧跟着脚本解释器的路径。/usr/bin/env bash 可以在环境变量
PATH 指定的目录中自动寻找 Bash 解释器并返回其路径。
Shebang 行之后的所有行都是 Bash 脚本的实际代码,其中 # 表示注释,可以放在行首,
也可以放在行尾。所有注释都会被 Bash 解释器自动忽略。
运行 Bash 脚本¶
在终端中,可以直接用 bash scriptname.sh 的形式运行 Bash 脚本:
$ bash hello-world.sh当脚本中已经显式地指定了 Bash 解释器(即存在 Shebang 行)时,可以使用 chmod
命令给脚本添加可执行权限:
$ chmod +x hello-world.sh此时可以直接执行 Bash 脚本:
$ ./hello-world.sh执行结果为:
Hello world!
Hello
world!
Hello world! This is seismo-learn.拥有 Shebang 行和可执行权限的脚本,在调用时还需要指定脚本的路径,
如 ./hello-world.sh 代表该脚本位于当前目录。如果将脚本放在环境变量 PATH
指定的目录中,就不需要指定路径了,因为 Bash 会自动到这些目录中寻找是否存在同名的
可执行文件。可以参考环境变量 一节
设置环境变量 PATH。
扩展阅读¶
Bash 脚本教程(全面、系统)
Bash 脚本基础(简要)
X 分钟速成 Bash(简要)