HelloWorld
编写shell脚本
在我们学习编程语言时,每门语言最简单的程序就是输出“Hello World”,shell脚本编程也不例外。进入 Linux 终端,编写一个 Shell 脚本 hello.sh
:
#!/bin/bash
echo 'hello world!'
#!
告诉系统这个脚本需要什么解释器来执行。- 文件扩展名
.sh
不是强制要求的。
运行shell脚本
运行shell脚本有两种方式,第一种方式命令如下
sh shell脚本文件名
# 例如
sh hello.sh
第二种方式命令如下
# 给脚本赋予可执行权限
chmod +x shell脚本文件名
# 执行shell脚本
./shell脚本文件名
# 例如
chmod +x hello.sh
./hello.sh
- 方法1 直接运行解释器,
hello.sh
作为 Shell 解释器的参数。此时 Shell 脚本就不需要指定解释器信息,第一行可以去掉。 - 方法2
hello.sh
作为可执行程序运行,Shell 脚本第一行一定要指定解释器。
运行结果
可以看到两种方式都可以正确运行我们编写的shell脚本。
注释
在Shell编程中,注释是用于解释代码、添加说明或暂时禁用某些代码行的文本。Shell脚本中的注释不会被执行,但它们对于提高代码的可读性和可维护性非常重要。
Shell脚本支持两种类型的注释:
单行注释: 单行注释以
#
字符开始,直到行尾。这意味着在该行中#
之后的所有内容都被视为注释,并且不会被执行。sh# 这是一个单行注释 echo "Hello, World!" # 这也是注释,紧跟在命令后面
多行注释(或称为块注释): Shell脚本本身并不直接支持多行注释的语法。但是,有几种方法可以模拟多行注释的效果。
使用
:
命令: 在Shell中,:
是一个空操作(即什么也不做)的命令。因此,你可以将多行文本放在:
命令和<<EOF
(或任何其他分隔符)之间来实现多行注释的效果。但是,请注意,这种方法并不是真正的注释,因为它实际上会执行一个空操作命令。不过,由于它不产生任何输出或副作用,因此通常被用作多行注释的替代方法。sh: <<'EOF' 这是一个多行注释 它不会被执行 EOF echo "这条命令会被执行"
注意:上面的示例使用了Here Document(这里文档)的语法,但是这里并没有真正使用Here Document来读取输入,而是用它来界定一个不会被执行的代码块。
<<'EOF'
是Here Document的一种变体,它允许EOF字面量不出现在引用的字符串中,从而避免了转义字符的使用。使用
if false
语句: 另一种方法是使用if false
语句块。在这个块中的所有内容都会被视为false
条件的代码块,因此不会被执行。这种方法比使用:
命令更明确地表达了“这是一个不会被执行的代码块”的意图。shif false; then # 这是一个多行注释 # 它不会被执行 fi echo "这条命令会被执行"
使用
#
字符重复: 对于较短的多行注释,你也可以简单地在每行的开头添加#
字符。虽然这种方法不如上面的方法优雅,但它对于简短的注释来说是有效的。sh# 这是一个多行注释的第一行 # 这是第二行 # 这是第三行 echo "这条命令会被执行"
在编写Shell脚本时,应该根据注释的长度和需要来选择最适合的方法。对于简短的注释,使用单行注释就足够了;对于较长的注释或需要暂时禁用大段代码的情况,可以考虑使用上面提到的多行注释的替代方法。