加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell多行注释详解

发布时间:2020-12-15 20:08:01 所属栏目:安全 来源:网络整理
导读:我们写shell脚本时,经常需要注释多行,但在每一行前输入#有些麻烦。基于 shell命令的灵活性,我们可以使用下面的方法。 1. 采用HERE DOCUMENT特性 格式: 'COMMENT' ... COMMENT 例子: #!/bin/bash echo "Say Something" COMMENT注释行 1 注释行 2 ...注释

我们写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.52php.cn/article/p-hoxxiufa-bad.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读