在咱们写 shell 脚本的时候,特别在调试的时候常常须要注释多行命令,但在每一行前输入 #
,显得有些麻烦。python
基于 shell 命令的灵活性,咱们可使用下面的方法:shell
方法一(这是比较稳妥的做法):能够采用 HERE DOCUMENT
特性,实现多行注释,好比bash
<<'COMMENT' ... COMMENT
举例以下:性能
#!/bin/bash echo "Say Something" <<COMMENT your comment 1 comment 2 blah COMMENT echo "Do something else"
方法二 ,直接采用 :
这个命令的特殊做用,但这种作法有不少局限性,并且会影响性能,下面会介绍它的原理及性能分析。调试
以下是最简单的使用方法:code
: ' COMMENT1 COMMENT2 '
即 :
+ 空格
+ 单引号
。字符串
解释以下:it
首先要知道 :
在 shell 中的特殊做用,它是内置的命令,先看一下它的帮助说明:性能分析
$ help :
:: :
Null command.
No effect; the command does nothing.
Exit Status:
Always succeeds.效率
即,:
它也是一个命令,既然是命令就会能够给它传参数,但因它会过滤掉这些参数,而单引号
括起来的是普通的代码部分表示字符串,因此咱们恰好可未来用来表明注释,表示在 :
后的 单引号
括起来的部分在程序执行的时候忽略。
另外若是很差理解,直接把它看成汇编中的 NOP
, python 中的 pass
,它只是一个占位,每次返回都是真,即 $?
的话,结果会是 0
。
如此一来,此方法是否是很绝妙? 但事实上里面潜藏着不少问题:
单引号
的语句部分,除非你将程序中的单引号所有换成又引号,这样不爽。:
会忽视后面的参数,但其实参数部分仍是可能会被执行些操做,好比替换操做,文件截取操做等。因此这样会影响到代码的执行效率。 : > file
会截取 file 。 : $(dangerous command)
这个替换操做照样会执行。因此第二种方法,只能临时用用。
第三种方法,即:采用 :
+ << 'COMMENT'
的方式。
#!/bin/bash echo "Say Something" : <<'COMMENT' your comment 1 comment 2 blah COMMENT echo "Do something else"
注意:要加上单引号部分,有时候虽然不加不会有什么问题,但仍是要加,以防出现莫名其妙的意外发生,好比发生字符扩展,命令替换等。
但最保险的方法仍是每行前加上 #