是否有一种简单的方法来注释掉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取消注释)。

你可以使用:

if [ 1 -eq 0 ]; then
  echo "The code that you want commented out goes here."
  echo "This echo statement will not be called."
fi

老实说,为什么要这么过度设计……

我认为编写主动代码来生成被动代码是一种糟糕的做法。

我的解决方案是:大多数编辑器都有块选择模式。只需使用它添加#到所有你想注释掉的行。 有什么大不了的…

记事本的例子:

创建方法:Alt -鼠标向下拖动,按#。

删除:alt -鼠标向下拖动,右移箭头,删除。

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

例如:

: '
This is a
very neat comment
in bash
'

这是维加斯的例子

你可以使用Vi/Vim的可视块模式,它是为这样的东西设计的:

Ctrl-V  
Highlight first element in rows you want commented  
Shift-i  
#  
esc  

不加评论的是:

Ctrl-V  
Highlight #'s  
d  
l  

这是vi做这类事情的交互式方式,而不是计算或读取行号。

最后,在Gvim中使用ctrl-q进入Visual Block模式,而不是ctrl-v(因为这是粘贴的快捷键)。