有没有一种简单的方法在shell脚本中注释掉一段代码?Shell脚本中的块注释
回答
在bash:
#!/bin/bash
echo before comment
: <<'END'
bla bla
blurfl
END
echo after comment
的'
和'
围绕END
定界符是重要的,像例如$(command)
块内的事情,否则将被解析和执行。
可爱的把戏 - 只要'END'关键字(当然是用户选择的)不会出现在要注释的材质内部的一行上。 – 2009-06-04 00:47:23
很好用的这里doc :) – OscarRyz 2011-04-06 15:35:53
非常漂亮的把戏。顺便说一句,这应该可以在任何Bourne兼容的shell中工作。 – 2011-04-19 08:43:31
对shell脚本没有块注释。
使用vi
(是的,vi
),你可以很容易地从行注释ň到米
<ESC>
:10,100s/^/#/
(读取,从第10行至100替代线启动(2)用一个#标志。)
,并取消注释与
<ESC>
:10,100s/^#//
(读取,从线10至100替代线起始(^),然后按#地注意到//)
vi
几乎是普遍的任何地方有/bin/sh
。
在Vim中:
- 去要评论
shift-V
(进入可视化模式),同比下降块亮点线- 执行上选择以下块的第一行
:s/^/#/
该命令将如下所示:
:'<,'>s/^/#
hit enter
例如,
shift-V
jjj
:s/^/#
<enter>
您可以使用:
if [ 1 -eq 0 ]; then
echo "The code that you want commented out goes here."
echo "This echo statement will not be called."
fi
,如果你可以躲闪单引号:
__='
blah blah comment.
'
下应sh
,bash
,ksh
和zsh
工作。
[ -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"
执行上面的代码将导致:
到被注释的代码块可以内部BEGINCOMMENT
和ENDCOMMENT
放
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(因为这是粘贴的快捷方式)。
sunny256接受的答案中的here-doc技巧的变体是使用Perl关键字进行评论。如果您的注释实际上是某种文档,那么您可以在注释块内部开始使用Perl语法,从而可以将其打印出格式良好的文本,并将其转换为手册页等。
只要壳体而言,您只需将'END'
替换为'=cut'
即可。
echo "before comment"
: <<'=cut'
=pod
=head1 NAME
podtest.sh - Example shell script with embedded POD documentation
etc.
=cut
echo "after comment"
正因过度设计......
我认为这真的是一个不好的做法,编写有源代码生成被动的代码。
我的解决方案:大多数编辑器都有块选择模式。只需使用它将#添加到您想要注释的所有行中即可。 什么大不了的......
记事本例如:
要创建键:Alt - mousedrag下来,请按#。
删除:Alt-mousedrag下移,右移箭头,删除。
- 1. SHELL脚本注释行
- 2. shell脚本多行注释
- 3. 在shell脚本中的单引号内添加注释?
- 4. PHP注释脚本
- 5. c shell脚本解释
- 6. 解释这个shell脚本
- 7. shell脚本 - 解释代码
- 8. 如何在shell脚本中注释特定行?
- 9. 如何在shell脚本vi编辑中禁用自动注释?
- 10. Django在shell中的注释
- 11. 与shell脚本删除注释出BTEQ文件的一部分
- 12. Shell脚本 - 匿名块
- 13. MySql查看脚本中的注释
- 14. 脚本中的取消注释行
- 15. 正则表达式提取css注释与shell脚本
- 16. 使用shell脚本取消注释sonar.properties文件
- 17. Shell脚本,grep有效的IP解释
- 18. 如何在配置单元脚本中创建注释块
- 19. 从文件中提取未在shell脚本中注释掉的所有行
- 20. shell的shell脚本
- 21. 解释shell脚本代码“for循环”
- 22. 注释地块
- 23. 编写shell脚本的shell脚本
- 24. 解释在PowerShell中{}脚本块
- 25. 注释引脚
- 26. 如何使用shell脚本在PL/SQL语句中删除组注释
- 27. 如果没有其他的shell脚本块%preun小脚本
- 28. VIM脚本包围与注释字符多行注释
- 29. UNIX脚本中的shell脚本错误
- 30. UNIX中,更改所有shell脚本中的解释器行
有趣的是,这样简单和简单的问题有多么复杂和不同的答案。 – Sigur 2016-11-28 21:28:11