是否有一种简单的方法来注释掉shell脚本中的代码块?


当前回答

sunny256给出的已接受的答案中的here-doc技巧的一个变体是使用Perl关键字进行注释。如果您的注释实际上是某种文档,那么您可以开始在注释块中使用Perl语法,这允许您将其打印出来,将其转换为手册页,等等。

就shell而言,你只需要将'END'替换为'=cut'。

echo "before comment"
: <<'=cut'
=pod

=head1 NAME
   podtest.sh - Example shell script with embedded POD documentation

etc.

=cut
echo "after comment"

(参见“在shell脚本中嵌入文档”)

其他回答

sunny256给出的已接受的答案中的here-doc技巧的一个变体是使用Perl关键字进行注释。如果您的注释实际上是某种文档,那么您可以开始在注释块中使用Perl语法,这允许您将其打印出来,将其转换为手册页,等等。

就shell而言,你只需要将'END'替换为'=cut'。

echo "before comment"
: <<'=cut'
=pod

=head1 NAME
   podtest.sh - Example shell script with embedded POD documentation

etc.

=cut
echo "after comment"

(参见“在shell脚本中嵌入文档”)

在vscode中ctrl+K+C (ctrl+K+U取消注释)。

在一个:

去你想评论的第一行 shift-V(进入可视模式),向上向下突出块中的行 执行以下选择:s/^/#/ 命令如下所示: : <、>年代/ ^ / # 回车

e.g.

shift-V
jjj
:s/^/#
<enter>

使用:'打开'和'关闭。

例如:

: '
This is a
very neat comment
in bash
'

这是维加斯的例子

shell脚本上没有块注释。

使用vi(是的,vi),您可以轻松地从第n行注释到第m行

<ESC>
:10,100s/^/#/

(从第10行到第100行,用#符号代替第(^)行。)

联合国的评论是

<ESC>
:10,100s/^#//

(从第10行到第100行,替换行开始(^),后面跟着#,并注明//。)

Vi几乎在任何有/bin/sh的地方都是通用的。