是否有一种简单的方法来注释掉shell脚本中的代码块?
当前回答
老实说,为什么要这么过度设计……
我认为编写主动代码来生成被动代码是一种糟糕的做法。
我的解决方案是:大多数编辑器都有块选择模式。只需使用它添加#到所有你想注释掉的行。 有什么大不了的…
记事本的例子:
创建方法:Alt -鼠标向下拖动,按#。
删除:alt -鼠标向下拖动,右移箭头,删除。
其他回答
我喜欢单线开闭:
if [ ]; then ##
...
...
fi; ##
“##”可以帮助我轻松地找到块注释的开始和结束。我可以在“##”后面加上一个数字,如果我有很多的话。要关闭注释,我只需在“[]”中插入一个“1”。我还避免了在注释块中使用单引号时遇到的一些问题。
在一个:
去你想评论的第一行 shift-V(进入可视模式),向上向下突出块中的行 执行以下选择:s/^/#/ 命令如下所示: : <、>年代/ ^ / # 回车
e.g.
shift-V
jjj
:s/^/#
<enter>
可以将注释代码放在函数中。这样做的一个好处是,您可以通过在定义之后调用函数来“取消注释”。
除非您打算通过调用函数来“取消注释”,否则函数内的文本不必在语法上正确。
ignored() {
echo this is comment
echo another line of comment
}
许多GUI编辑器允许您选择一个文本块,然后按“{”自动在所选代码块周围加上花括号。
shell脚本上没有块注释。
使用vi(是的,vi),您可以轻松地从第n行注释到第m行
<ESC>
:10,100s/^/#/
(从第10行到第100行,用#符号代替第(^)行。)
联合国的评论是
<ESC>
:10,100s/^#//
(从第10行到第100行,替换行开始(^),后面跟着#,并注明//。)
Vi几乎在任何有/bin/sh的地方都是通用的。
在bash中:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
END分隔符周围的“和”很重要,否则块内的内容(例如$(命令))将被解析并执行。
关于解释,请看这个和这个问题。