Shell 脚本中的注释
在 Shell 脚本(如 .sh 文件)中,注释的作用是解释代码逻辑,方便自己或他人理解和维护。

单行注释
使用 符号,从 开始到该行末尾的所有内容都会被 Shell 解释器忽略。
语法:
# 这是注释内容
示例:
#!/bin/bash # 这是一个简单的 Shell 脚本,用于演示注释功能 # 作者:Your Name # 日期:2025-10-27 # 定义一个变量 name="Linux" # 输出变量值 echo "Hello, $name!" # 这行代码会打印 "Hello, Linux!"
重要提示:

- 必须是行首或者前面有空格/Tab。 出现在引号(单引号或双引号)内部,它会被当作普通字符,而不是注释符号。
- 在
#!/bin/bash这行(称为 Shebang), 不是注释,它有特殊含义,告诉系统使用哪个解释器来执行这个脚本。
配置文件中的注释
在 Linux 的各种配置文件中,注释的规则由该文件的具体格式决定,最常见的规则是使用 或 作为注释符。
使用 作为注释符
这是最常见的方式,广泛用于系统配置文件和应用配置文件中。
示例文件 (/etc/fstab 的一部分):
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # /dev/sda1 was on / during installation UUID=1234abcd-56ef-78gh-90ij-klmnopqrstuv / ext4 defaults 0 1
在上面的例子中,所有以 开头的行都是注释,解释了文件的结构和各个字段的含义。

使用 作为注释符
一些配置文件,特别是某些服务或软件的自定义配置文件,会使用分号 作为注释符。
示例 (一个常见的 ini 风格配置文件):
; 这是一个 ini 风格的配置文件 ; server_port 定义了服务监听的端口号 [database] host = localhost port = 3306 user = admin [server] port = 8080 ; 服务监听的端口号
以 开头的行是注释,在 port = 8080 这一行, 及其后面的内容也是注释。
使用 或 作为注释符
这种风格通常出现在编程语言或特定工具的配置文件中,nginx 的配置文件 (nginx.conf) 就支持 C 语言风格的注释。
示例 (nginx.conf 的一部分):
# 这是 nginx 的主配置文件
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# 日志格式定义
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
# 包含站点配置文件
include /etc/nginx/conf.d/*.conf;
}
虽然 nginx.conf 主要使用 ,但它也支持 C 风格的注释,这在一些更复杂的配置中可以看到:
/* 这是一个多行注释块
可以跨越多行来解释复杂的配置块 */
server {
listen 80;
server_name example.com;
// 这也是一个单行注释
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
如何给已执行的命令添加注释?
你可能想在终端历史记录中留下一个带有注释的命令,方便以后查找,直接在命令前加 是无效的,因为 Shell 会忽略它。
方法:使用 (空命令) 和 && (逻辑与)
是一个空命令,它什么都不做,但总是返回成功(退出码为 0)。&& 表示如果前面的命令成功执行,就执行后面的命令。
语法:
# : 注释内容 && 实际要执行的命令
示例:
假设你想安装 vim 并加上注释说明用途。
# 错误方式 (不会执行安装) # 安装编辑器 vim sudo apt-get install vim # 正确方式 : 安装编辑器 vim && sudo apt-get install vim
当你执行这行命令时:
- 命令执行成功。
- 因为
&&,sudo apt-get install vim被执行。 - 当你按 键查看历史记录时,你会看到完整的一行
安装编辑器 vim && sudo apt-get install vim,清晰地记录了你的操作意图。
| 场景 | 注释符号 | 示例 | 备注 |
|---|---|---|---|
| Shell 脚本 | # 这是一个脚本注释 |
最常用,必须是行首或前面有空格。 | |
| 配置文件 (通用) | # 这是一个配置注释 |
/etc/fstab, /etc/hosts 等常用。 |
|
| 配置文件 (部分) | ; 这是一个配置注释 |
一些 ini 风格的文件使用。 |
|
| 配置文件 (Nginx等) | , , | # 注释 或 /* 注释 */ |
类似 C 语言风格。 |
| 终端历史记录 | 和 && |
注释 && command |
用于在命令前添加说明性文字。 |
掌握这些注释方法,能让你的脚本和配置文件更具可读性和可维护性。
