2009-06-03 44 views

回答

259

在bash:

#!/bin/bash 
echo before comment 
: <<'END' 
bla bla 
blurfl 
END 
echo after comment 

''围绕END定界符是重要的,像例如$(command)块内的事情,否则将被解析和执行。

有关说明,请参阅thisthis问题。

+17

可爱的把戏 - 只要'END'关键字(当然是用户选择的)不会出现在要注释的材质内部的一行上。 – 2009-06-04 00:47:23

+2

很好用的这里doc :) – OscarRyz 2011-04-06 15:35:53

+0

非常漂亮的把戏。顺便说一句,这应该可以在任何Bourne兼容的shell中工作。 – 2011-04-19 08:43:31

73

对shell脚本没有块注释。

使用vi(是的,vi),你可以很容易地从行注释ň

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

(读取,从第10行至100替代线启动(2)用一个#标志。)

,并取消注释与

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

(读取,从线10至100替代线起始(^),然后按#地注意到//)

vi几乎是普遍的任何地方有/bin/sh

14

在Vim中:

  1. 去要评论
  2. shift-V(进入可视化模式),同比下降块亮点线
  3. 执行上选择以下块的第一行:s/^/#/
  4. 该命令将如下所示:

    :'<,'>s/^/# 
    
  5. hit enter

例如,

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

您可以使用:

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

,如果你可以躲闪单引号:

__=' 
blah blah comment. 
' 
21

下应shbashkshzsh工作。

[ -z $BASH ] || shopt -s expand_aliases 
alias BEGINCOMMENT="if [ ]; then" 
alias ENDCOMMENT="fi" 

BEGINCOMMENT 
    echo "This line appears in a commented block" 
    echo "And this one too!" 
ENDCOMMENT 

echo "This is outside the commented block" 

执行上面的代码将导致:

到被注释的代码块可以内部BEGINCOMMENTENDCOMMENT

This is outside the commented block 

为了取消注释代码块如此评论,说

alias BEGINCOMMENT="if : ; then" 

代替

alias BEGINCOMMENT="if [ ]; then" 
在上面的例子

4

你可以使用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(因为这是粘贴的快捷方式)。

0

sunny256接受的答案中的here-doc技巧的变体是使用Perl关键字进行评论。如果您的注释实际上是某种文档,那么您可以在注释块内部开始使用Perl语法,从而可以将其打印出格式良好的文本,并将其转换为手册页等。

只要壳体而言,您只需将'END'替换为'=cut'即可。

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

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

etc. 

=cut 
echo "after comment" 

(上找到“Embedding documentation in shell script”)

3

正因过度设计......

我认为这真的是一个不好的做法,编写有源代码生成被动的代码。

我的解决方案:大多数编辑器都有块选择模式。只需使用它将#添加到您想要注释的所有行中即可。 什么大不了的......

记事本例如:

要创建键:Alt - mousedrag下来,请按#。

删除:Alt-mousedrag下移,右移箭头,删除。