Hello World
互动壳牌
Bash shell 通常以交互方式使用 : 它允许你输入和编辑命令,然后在按下 Return 键时执行它们。许多基于 Unix 和类 Unix 操作系统使用 Bash 作为其默认 shell(特别是 Linux 和 macOS)。终端在启动时自动进入交互式 Bash shell 进程。
输入以下内容输出 Hello World:
echo "Hello World"
#> Hello World  # Output Example
笔记
- 
你只需在终端中键入 shell 的名称即可更改 shell。例如: sh,bash等
- 
echo是一个 Bash 内置命令,它将接收的参数写入标准输出。默认情况下,它会在输出中附加换行符。
非交互式外壳
Bash shell 也可以从脚本非交互式运行,使 shell 不需要人工交互。交互行为和脚本行为应该是相同的 - 这是 Unix V7 Bourne shell 和传递 Bash 的重要设计考虑因素。因此,可以在命令行中执行的任何操作都可以放在脚本文件中以供重用。
请按照以下步骤创建 Hello World 脚本:
- 
创建一个名为 hello-world.sh的新文件touch hello-world.sh
- 
通过运行 chmod+x hello-world.sh使脚本可执行
- 
添加此代码: #!/bin/bash echo "Hello World"第 1 行:脚本的第一行必须以字符序列 #!开头,称为 shebang 1 。shebang 指示操作系统运行/bin/bash,即 Bash shell,将脚本的路径作为参数传递给它。例如 /bin/bash hello-world.sh第 2 行 :使用 echo命令将Hello World写入标准输出。
- 
使用以下方法之一从命令行执行 hello-world.sh脚本:- ./hello-world.sh- 最常用,推荐
- /bin/bash hello-world.sh
- bash hello-world.sh- 假设- /bin在你的- $PATH
- sh hello-world.sh
 
对于真正的生产用途,你会省略 .sh 扩展(这是误导,因为这是一个 Bash 脚本,而不是 sh 脚本)并且可能将文件移动到你的 PATH 目录中,这样无论你有什么当前工作目录,就像 cat 或 ls 这样的系统命令。
常见错误包括:
- 
忘记对文件应用执行权限,即 chmod +x hello-world.sh,导致./hello-world.sh: Permission denied的输出。
- 
在 Windows 上编辑脚本,这会产生 Bash 无法处理的错误行结束字符。 一个常见的症状是 : command not found,其中回车已将光标强制到行的开头,覆盖错误消息中冒号前的文本。可以使用 dos2unix程序修复脚本。一个使用示例: dos2unix hello-world.shdos2unix内联编辑文件。
- 
使用 sh ./hello-world.sh,没有意识到bash和sh是具有不同特征的不同壳(尽管由于 Bash 向后兼容,相反的错误是无害的)。无论如何,仅仅依靠脚本的 shebang 线比在每个脚本的文件名之前明确地写 bash或sh(或python或perl或awk或ruby或……)更为可取。为了使脚本更具可移植性而使用的常见 shebang 行是使用 #!/usr/bin/env bash而不是硬编码 Bash 的路径。这样,/usr/bin/env必须存在,但除此之外,bash只需要在你的节目 44 上。在许多系统中,/bin/bash不存在,你应该使用/usr/local/bin/bash或其他一些绝对路径; 这种变化避免了弄清楚细节。
1 也称为 sha-bang,hashbang,pound-bang,hash-pling。