是否有一种简单的方法来注释掉shell脚本中的代码块?
当前回答
让我们把这些最好的想法和建议结合起来。
alias _CommentBegin_=": <<'_CommentEnd_'"
如前所述,单引号是非常重要的,因为没有它们 $(commandName)和${varName}将被计算。
你可以这样使用它:
_CommentBegin_
echo "bash code"
or
none code can be in here
_CommentEnd_
别名使使用更加明显和更好看。
其他回答
在一个:
去你想评论的第一行 shift-V(进入可视模式),向上向下突出块中的行 执行以下选择:s/^/#/ 命令如下所示: : <、>年代/ ^ / # 回车
e.g.
shift-V
jjj
:s/^/#
<enter>
在bash中:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
END分隔符周围的“和”很重要,否则块内的内容(例如$(命令))将被解析并执行。
关于解释,请看这个和这个问题。
老实说,为什么要这么过度设计……
我认为编写主动代码来生成被动代码是一种糟糕的做法。
我的解决方案是:大多数编辑器都有块选择模式。只需使用它添加#到所有你想注释掉的行。 有什么大不了的…
记事本的例子:
创建方法:Alt -鼠标向下拖动,按#。
删除:alt -鼠标向下拖动,右移箭头,删除。
另一种模式是: 如果你的编辑器没有BLOCK评论选项,
打开编辑器的第二个实例(例如File=>New File…) 从您正在处理的上一个文件中,只选择要注释的部分 复制并粘贴到新的临时文件的窗口中… 打开编辑菜单,选择REPLACE,输入要替换的字符串'\n' 输入替换字符串:'\n#' 按下“替换全部”按钮
DONE
它适用于任何编辑器
你可以使用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(因为这是粘贴的快捷键)。