2009-06-03 45 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下移,右移箭頭,刪除。