有沒有一種簡單的方法在shell腳本中註釋掉一段代碼?Shell腳本中的塊註釋
回答
在bash:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
的'
和'
圍繞END
定界符是重要的,像例如$(command)
塊內的事情,否則將被解析和執行。
可愛的把戲 - 只要'END'關鍵字(當然是用戶選擇的)不會出現在要註釋的材質內部的一行上。 – 2009-06-04 00:47:23
很好用的這裏doc :) – OscarRyz 2011-04-06 15:35:53
非常漂亮的把戲。順便說一句,這應該可以在任何Bourne兼容的shell中工作。 – 2011-04-19 08:43:31
對shell腳本沒有塊註釋。
使用vi
(是的,vi
),你可以很容易地從行註釋ň到米
<ESC>
:10,100s/^/#/
(讀取,從第10行至100替代線啓動(2)用一個#標誌。)
,並取消註釋與
<ESC>
:10,100s/^#//
(讀取,從線10至100替代線起始(^),然後按#地注意到//)
vi
幾乎是普遍的任何地方有/bin/sh
。
在Vim中:
- 去要評論
shift-V
(進入可視化模式),同比下降塊亮點線- 執行上選擇以下塊的第一行
:s/^/#/
該命令將如下所示:
:'<,'>s/^/#
hit enter
例如,
shift-V
jjj
:s/^/#
<enter>
您可以使用:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
,如果你可以躲閃單引號:
__='
blah blah comment.
'
下應sh
,bash
,ksh
和zsh
工作。
[ -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"
執行上面的代碼將導致:
到被註釋的代碼塊可以內部BEGINCOMMENT
和ENDCOMMENT
放
This is outside the commented block
爲了取消註釋代碼塊如此評論,說
alias BEGINCOMMENT="if : ; then"
代替
alias BEGINCOMMENT="if [ ]; then"
在上面的例子
。
你可以使用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(因爲這是粘貼的快捷方式)。
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"
正因過度設計......
我認爲這真的是一個不好的做法,編寫有源代碼生成被動的代碼。
我的解決方案:大多數編輯器都有塊選擇模式。只需使用它將#添加到您想要註釋的所有行中即可。 什麼大不了的......
記事本例如:
要創建鍵:Alt - mousedrag下來,請按#。
刪除:Alt-mousedrag下移,右移箭頭,刪除。
- 1. SHELL腳本註釋行
- 2. shell腳本多行註釋
- 3. 在shell腳本中的單引號內添加註釋?
- 4. PHP註釋腳本
- 5. c shell腳本解釋
- 6. 解釋這個shell腳本
- 7. shell腳本 - 解釋代碼
- 8. 如何在shell腳本中註釋特定行?
- 9. 如何在shell腳本vi編輯中禁用自動註釋?
- 10. Django在shell中的註釋
- 11. 與shell腳本刪除註釋出BTEQ文件的一部分
- 12. Shell腳本 - 匿名塊
- 13. MySql查看腳本中的註釋
- 14. 腳本中的取消註釋行
- 15. 正則表達式提取css註釋與shell腳本
- 16. 使用shell腳本取消註釋sonar.properties文件
- 17. Shell腳本,grep有效的IP解釋
- 18. 如何在配置單元腳本中創建註釋塊
- 19. 從文件中提取未在shell腳本中註釋掉的所有行
- 20. shell的shell腳本
- 21. 解釋shell腳本代碼「for循環」
- 22. 註釋地塊
- 23. 編寫shell腳本的shell腳本
- 24. 解釋在PowerShell中{}腳本塊
- 25. 註釋引腳
- 26. 如何使用shell腳本在PL/SQL語句中刪除組註釋
- 27. 如果沒有其他的shell腳本塊%preun小腳本
- 28. VIM腳本包圍與註釋字符多行註釋
- 29. UNIX腳本中的shell腳本錯誤
- 30. UNIX中,更改所有shell腳本中的解釋器行
有趣的是,這樣簡單和簡單的問題有多麼複雜和不同的答案。 – Sigur 2016-11-28 21:28:11