Shell脚本在Bash/KSH下放置多行注释

时间:2020-01-09 10:37:19  来源:igfitidea点击:

我想在shell脚本下使用多行注释。在C/C ++中,我可以使用以下格式:/*我的c代码注释#2等等foo bar .... * /如何在shell脚本下放置多行注释?您能告诉设置多行shell脚本注释的方法吗?

默认情况下,shell脚本可以用#字符注释掉,例如:

# my comment goes here

Bash Shell脚本放入多行注释语法

对于多行注释,请使用以下语法:

#!/usr/bin/env bash
# my comment  1
# my comment  2
# my comment  N

但是,您可以按以下方式使用HERE DOCUMENT功能:

#!/bin/bash
echo "Say Something"
<<COMMENT1
    your comment 1
    comment 2
    blah
COMMENT1
echo "Do something else"

此类重定向告诉shell程序从当前源(HERE)读取输入,直到看到仅包含单词(HERE)的行。
这里的单词不受变量名,参数扩展,算术扩展,路径名扩展或命令替换的约束。
读取到该点的所有行,然后用作命令的标准输入。
以这种方式处理文件通常在这里称为文档。
如果您不想在单引号中使用变量名,参数扩展,算术扩展,路径名扩展或命令替换引号HERE(COMMENTS):


Bash 注释示例

重要的是,将EOF放在单引号('EOF')中,以避免命令执行和措辞。
这是Shell脚本示例中的块注释:

#!/usr/bin/env bash
echo "*** Before comment block ***"
: <<'EOF'
CODE block starts
CODE block ends here
EOF
echo "*** After comments block ***"

在Bash脚本中编写多行注释

多行shell脚本注释

Ikram在下面的评论部分中指出的另一种选择:

#!/bin/bash
foo=bar
: '
This is a test comment
Author foo bar
Released under GNU 
'
 
echo "Init..."
# rest of script

请注意,是shell内置命令。
在bash(1)手册页中:

:[参数]无作用;该命令除了扩展参数和执行任何指定的重定向外,什么也不做。
返回零退出代码。

因此语法为:

: '
your comments here
'

Shell脚本中使用的Null命令放置多个注释。

""无效。
换句话说,该命令不执行任何操作,并且始终以成功代码退出。