是否有一种简单的方法来注释掉shell脚本中的代码块?
当前回答
shell脚本上没有块注释。
使用vi(是的,vi),您可以轻松地从第n行注释到第m行
<ESC>
:10,100s/^/#/
(从第10行到第100行,用#符号代替第(^)行。)
联合国的评论是
<ESC>
:10,100s/^#//
(从第10行到第100行,替换行开始(^),后面跟着#,并注明//。)
Vi几乎在任何有/bin/sh的地方都是通用的。
其他回答
在一个:
去你想评论的第一行 shift-V(进入可视模式),向上向下突出块中的行 执行以下选择:s/^/#/ 命令如下所示: : <、>年代/ ^ / # 回车
e.g.
shift-V
jjj
:s/^/#
<enter>
以下命令适用于sh、bash、ksh和zsh。
注释的代码块可以放在BEGINCOMMENT和ENDCOMMENT中:
[ -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"
执行上述代码将导致:
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(因为这是粘贴的快捷键)。
shell脚本上没有块注释。
使用vi(是的,vi),您可以轻松地从第n行注释到第m行
<ESC>
:10,100s/^/#/
(从第10行到第100行,用#符号代替第(^)行。)
联合国的评论是
<ESC>
:10,100s/^#//
(从第10行到第100行,替换行开始(^),后面跟着#,并注明//。)
Vi几乎在任何有/bin/sh的地方都是通用的。
老实说,为什么要这么过度设计……
我认为编写主动代码来生成被动代码是一种糟糕的做法。
我的解决方案是:大多数编辑器都有块选择模式。只需使用它添加#到所有你想注释掉的行。 有什么大不了的…
记事本的例子:
创建方法:Alt -鼠标向下拖动,按#。
删除:alt -鼠标向下拖动,右移箭头,删除。