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