文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在 Bash 脚本中添加注释

2024-11-30 06:25

关注

在 Bash 脚本中添加注释是保持代码整洁且易于理解的最有效方法之一。

你可能会问为什么。

假设你的脚本包含一个复杂的正则表达式或多个复杂的代码块,在这种情况下,你可以添加注释,以便其他开发人员或你可以了解该代码块的含义。

注释掉部分代码也有助于调试脚本。

在本教程中,我将引导你了解在 Bash 脚本中添加注释的三种方法:

那么让我们从第一个开始。

Bash 中的单行注释

要添加单行注释,你必须将哈希符号(#)放在行的开头并编写注释。

这是一个简单的例子:

#!/bin/bash
# This is a comment
echo "Hello, World!"

执行时,注释将被忽略,当我执行上面的命令时,它看起来像这样:

💡 # 注释规则的唯一例外是脚本开头的 #!/bin/bash 行。它称为 释伴,用于指定运行脚本时要使用的解释器。有不同的 Shell,语法也可能不同。因此,一个好的做法是指定脚本是为哪个 Shell 编写的。例如,如果是 ksh,则可以使用 #!/bin/ksh.

Bash 脚本中的内联注释

或者,你可以将注释放在代码块内以记录该特定行的用途。

🚧 # 之后的任何内容在该行结束之前都不会执行,因此请确保在代码末尾添加注释。

这是一个简单的例子:

#!/bin/bash
echo "Hello, World!" #Prints hello world

Bash 中的多行注释

🚧 Bash 中没有内置的多行注释功能。但是,有一些解决方法可以实现多行注释效果。

顾名思义,Bash 脚本中的多行注释允许你在多行中编写注释,或者通过将它们放在多行注释部分来阻止执行代码块:

  1. 在每行的开头使用 #
  2. 冒号表示法(使用冒号后跟单引号)
  3. 现场文档(使用 << 后跟分隔符)

那么让我们从第一个开始。

1、对块注释的每一行使用 #

如果你的目的是解释脚本的一部分,我建议使用此方法。毕竟,# 才是真正的注释功能。

这也是许多开发人员使用的方法。

假设你必须在一开始就解释脚本的用途、作者信息或许可信息。你可以这样写:

#!/bin/bash
######################################
## This script is used for scanning ##
## local network                    ##
## Licensed under GPL 2.0           ##
######################################
这个 Bash 脚本的其它部分……

当你想说明 Bash 脚本的行为方式时这不错。如果你正在调试 Bash 脚本并希望隐藏部分脚本,则在所需代码的每一行开头添加 # 并在调试后将其删除是一项耗时的任务。

接下来的两节将帮助你做到这一点。

2、冒号表示法

要使用冒号表示法,请在 : ' 和结束的 ' 之间编写块注释,如下所示:

#!/bin/bash
: '
This is how you can use colon notation
And this line too will be ignored
'
echo "GOODBYE"

当你执行上面的脚本时,它应该只打印 GOODBYE

3、现场文档

到目前为止,这是在 Bash 中编写多行注释的最流行的方法,你可以使用 << 后跟分隔符(一组用于指定注释开始和结束的字符)。

(LCTT 译注:在编程领域,“here document” 是一个常见的术语,特指在脚本语言(如 Perl、Bash)中,能够直接在代码内部嵌入并处理一个数据块或文本串的技术。尽管传统上我们将它翻译为“嵌入式文档” 或不翻译,但这个译法似乎并不能完全地体现出原文的感觉和含义。为了让这个概念变得更为直观和易理解,我们建议将 “here document” 翻译为 “现场文档”。“现场”相比于“嵌入式”,更好的传达了文档就在代码的当前位置,或代码“现场”的含义。这样的译法也与原文 “here document” 中 “here”(这里)的含义更为契合。我们希望这个译法能够在未来得到更广泛的使用和认可,让编程的世界因语言的精准而变得更美好。PS., 该译法和解释得到了 ChatGPT 的建议和生成。)

使用方法如下:

#!/bin/bash
<

还困惑吗? 这是一个简单的例子:

#!/bin/bash
<

在上面的示例中,我使用了 COMMENT 作为分隔符,但你可以使用任何内容,但要确保它从注释中脱颖而出,否则会造成混乱。

当我执行上面的脚本时,它给出了以下输出:

正如你所看到的,它忽略了从 < 到 COMMENT 的所有内容。

我希望本指南对你有所帮助。

来源:Linux中国内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯