Bash - 第一个脚本¶
本章将学习如何编写第一个 bash 脚本。
**目标**: 本章将学习如何
编写第一个 bash 脚本;
执行第一个脚本;
使用所谓的 shebang 指定要使用的 shell;
**linux**, **脚本**, **bash**
**知识**:
**复杂度**:
**阅读时间**: 10 分钟
我的第一个脚本¶
要开始编写 shell 脚本,最好使用支持语法高亮的文本编辑器。
例如,vim
是一个很好的工具。
脚本的名称应该遵守一些规则
- 没有现有命令的名称;
- 仅包含字母数字字符,即没有重音字符或空格;
- 扩展名为 .sh,表示这是一个 shell 脚本。
注意
作者在这些课程中使用 "$" 来表示用户的命令提示符。
#!/usr/bin/env bash
#
# Author : Rocky Documentation Team
# Date: March 2022
# Version 1.0.0: Displays the text "Hello world!"
#
# Displays a text on the screen :
echo "Hello world!"
为了能够运行此脚本,作为 bash 的参数
$ bash hello-world.sh
Hello world !
或者,更简单地说,在赋予它执行权限之后
$ chmod u+x ./hello-world.sh
$ ./hello-world.sh
Hello world !
注意
要执行脚本,您需要在当前目录中,在脚本名称之前加上 ./
来调用它。如果不在该目录中,则需要使用脚本的完整路径调用它,或者将其放在 PATH 环境变量中的某个目录中:(例如:/usr/local/sbin
、/usr/local/bin
等)解释器将拒绝执行当前目录中存在的脚本,而没有指定路径(这里用 ./
放在它前面)。
chmod
命令仅在新建脚本时执行一次。
任何脚本中要编写的第一行是指示要用于执行脚本的 shell 二进制文件的名称。如果您想使用 ksh
shell 或解释型语言 python
,则应将该行替换为
#!/usr/bin/env bash
为
#!/usr/bin/env ksh
或为
#!/usr/bin/env python
这第一行称为 shebang
。它以字符 #!
开头,后跟要使用的命令解释器的二进制文件的路径。
关于 shebang
您可能在您查看过的脚本中遇到过“shebang”,这些脚本不包含“env”部分,只包含要使用的解释器。(示例:#!/bin/bash
)。作者的方法被认为是格式化“shebang”的推荐和正确方法。
为什么作者的方法是推荐的?因为这提高了脚本的可移植性。如果由于某种原因,解释器位于完全不同的目录中,如果您使用作者的方法,解释器**仍然**可以找到。
在整个编写过程中,您应该考虑校对脚本,尤其要使用注释
- 在开头进行一般介绍,以指示脚本的目的、作者、版本、使用等。
- 在文本中进行说明,以帮助理解操作。
注释可以放在单独的行上,也可以放在包含命令的行尾。
示例
# This program displays the date
date # This line is the line that displays the date!
作者:Antoine Le Morvan
贡献者:Steven Spencer、Ganna Zhyrnova