是否有一种简单的方法来注释掉shell脚本中的代码块?


当前回答

shell脚本上没有块注释。

使用vi(是的,vi),您可以轻松地从第n行注释到第m行

<ESC>
:10,100s/^/#/

(从第10行到第100行,用#符号代替第(^)行。)

联合国的评论是

<ESC>
:10,100s/^#//

(从第10行到第100行,替换行开始(^),后面跟着#,并注明//。)

Vi几乎在任何有/bin/sh的地方都是通用的。

其他回答

如果你能避开单引号:

__='
blah blah comment.
'

以下命令适用于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"

在上面的例子中。

在vscode中ctrl+K+C (ctrl+K+U取消注释)。

你可以使用:

if [ 1 -eq 0 ]; then
  echo "The code that you want commented out goes here."
  echo "This echo statement will not be called."
fi

另一种模式是: 如果你的编辑器没有BLOCK评论选项,

打开编辑器的第二个实例(例如File=>New File…) 从您正在处理的上一个文件中,只选择要注释的部分 复制并粘贴到新的临时文件的窗口中… 打开编辑菜单,选择REPLACE,输入要替换的字符串'\n' 输入替换字符串:'\n#' 按下“替换全部”按钮

DONE

它适用于任何编辑器