当前位置:  开发笔记 > 编程语言 > 正文

在Shell脚本中阻止注释

如何解决《在Shell脚本中阻止注释》经验,为你挑选了7个好方法。

有没有一种简单的方法可以在shell脚本中注释掉一段代码?



1> sunny256..:

在bash中:

#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment

''周围的END分隔符是重要的,否则里面的东西例如像块$(command)将被解析并执行.

有关说明,请参阅该和这个问题.


可爱的技巧 - 只要'END'关键字(当然,用户选择)不会出现在要注释掉的材料内部的一条线上.
@kalengi:是的; 引号中使用的单词可以是任何方便的; `EOF`是一个经典的例子(```,一个感叹号本身也是如此),但你可以使用`SNURFLE_BURGERS`或`classical_end_marker`或任何其他单词不会出现在一行上注释掉的材料.我会试着用空间等进行试验,但这个词也可能适用于它们.
@MB_CE,请参阅http://stackoverflow.com/questions/32126653/how-does-end-work-in-bash-to-create-a-multi-line-comment-block#32126942.也就是说 - 它正在运行一个命令(`:`),它不会读取其输入并始终以成功的值退出,并将"注释"作为输入发送.不是很多.
它绝对有效,但任何人都可以详细说明这是如何工作的?谢谢
很好用的这里doc :)
我认为编写活动代码来创建被动代码令人难以置信的丑陋和困惑......只需使用好的旧块选择模式并按#; 这有什么大问题?

2> OscarRyz..:

shell脚本没有块注释.

使用vi(是vi),您可以轻松地从第n行到第m行发表评论


:10,100s/^/#/

(读取,从第10行到第100行用#符号替换行开头(^).)

并且不发表评论


:10,100s/^#//

(读取,从第10行到第100行替换行开头(^)后跟#注释//.)

vi几乎在任何地方都是通用的/bin/sh.


只是一个提示 - 如果你正在使用vim,这最终会突出显示每一行的开头,添加`| noh`到最后.管道分离了额外的命令,而'noh`则用于nohighlight.搜索词突出显示将在您下次搜索内容时自动恢复.示例:`:10,100s/^ /#/ g | noh`

3> 小智..:

您可以使用:

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


这是经典的,但正如http://stackoverflow.com/a/19409316/832230所述,只是`if [];`也可以.
或许更清楚:"如果错误;".http://stackoverflow.com/a/18019516/2097284
这似乎只是工作,评论文本实际上是代码.我用管道和分号的注释遇到了问题.Sunny256的答案奏效了.

4> devnull..:

以下应该适用于sh,bash,kshzsh.

要注释的代码块可以放在里面,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"

在上面的例子中.



5> vanvliet.eri..:

如果你能躲避单引号:

__='
blah blah comment.
'



6> stefanB..:

在Vim:

    转到要评论的第一行块

    shift-V (进入可视模式),向上按下块中的高亮线

    选择时执行以下操作 :s/^/#/

    该命令将如下所示:

      :'<,'>s/^/#
    

    打进去

例如

shift-V
jjj
:s/^/#


取消注释使用`:s/^#/`

7> Relative0..:

使用: '在打开和'关闭。

例如:

: '
This is a
very neat comment
in bash
'

这是来自拉斯维加斯的榜样发现这里

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有