编写外壳脚本

外壳脚本是执行所有类型任务的便捷方式:收集数据、在文本中搜索单词或短语以及许多其他有用的操作。以下示例显示用于打印文本的小外壳脚本:

例 7.1. 用于打印文本的外壳脚本

#!/bin/sh 1
# Output the following line: 2
echo "Hello World" 3

1

第一行开头是 Shebang 字符 (#!),它表示此文件是一个脚本。该脚本使用 Shebang 后的指定解释程序执行,在本示例中为 /bin/sh

2

第二行是一个以哈希符号开头的注释。建议对较难理解的行进行注释以记住它们的作用。

3

第三行使用内置命令 echo 打印相应文本。


可以运行该脚本之前,需要一些先决条件:

  1. 每个脚本都应包含一个 Shebang 行(始终和我们的上述示例一样)。如果脚本没有此行,则必须手动调用解释程序。

  2. 可以将该脚本保存在任何位置。但是,建议将其保存在外壳可以找到的目录中。外壳中的搜索路径由环境变量 PATH 确定。通常,一般用户不具有对 /usr/bin 的写权限。因此,建议将脚本保存在用户目录 ~/bin/ 中。在上例中使用名称 hello.sh

  3. 该脚本需要可执行权限。使用以下命令设置权限:

    chmod +x ~/bin/hello.sh

如果已满足上述所有先决条件,则可以按如下方式执行此脚本:

  1. 作为绝对路径.  可以使用绝对路径执行脚本。在本例中为 ~/bin/hello.sh

  2. 所有位置.  如果 PATH 环境变量包含脚本所在目录,则只需使用 hello.sh 即可执行脚本。