shell多行注释详解

前端之家收集整理的这篇文章主要介绍了shell多行注释详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们写shell脚本时,经常需要注释多行,但在每一行前输入#有些麻烦。基于 shell命令的灵活性,我们可以使用下面的方法

1. 采用HERE DOCUMENT特性

格式:

<<'COMMENT'
...

COMMENT

例子:

#!/bin/bash 
echo "Say Something"

<<COMMENT
注释行1
注释行2
...
注释行n
COMMENT

2. 采用:

冒号:可用于多行注释。

格式:

: ' # : + 空格 + 单引号
注释行1
注释行2
... 注释行n
'

例子:

#!/bin/bash 
echo "Say Something"

: ' # : + 空格 + 单引号 注释行1 注释行2 ... 注释行n '

这种做法有很多局限性,而且会影响性能。首先,冒号:是shell内置命令,它的帮助说明:

$ help : 
:: : 
Null command. 
No effect; the command does nothing. 
Exit Status: 
Always succeeds.

即冒号:也是一个shell命令,可以给它传参数,但因为冒号:会过滤掉这些参数,而单引号括起来的普通代码表示字符串,所以我们可用冒号:表示注释。在程序执行时,冒号:后单引号括起来的部分不会执行。

潜在的问题:

  • 冒号:不会注释shell脚本中本身带有单引号的语句部分,除非你把程序中的单引号全部换成又引号。
  • 虽然冒号:忽视后面的参数,但其实参数部分还是可能会被执行一些操作,比如替换操作,文件截取操作等,这样会影响到代码的执行效率。例如: > file截取file ,: $(dangerous command)替换操作照样会执行。

所以第二种方法,只能临时用用。

3. 采用 : + << ‘COMMENT’

#!/bin/bash 
echo "Say Something"

: <<'COMMENT'
注释行1
注释行2
...
注释行n
COMMENT

注意:要加上单引号,虽然有时不加不会有什么问题,但还是要防止出现莫名其妙的意外,比如发生字符扩展,命令替换等。最保险的方法还是每行前加上#

4. 参考文章

http://www.jb51.cc/article/p-hoxxiufa-bad.html

猜你在找的Bash相关文章