Content

Shell脚本注释的实现(在shell脚本中,如何写入注释框)全程干货

文章摘要

这篇文章介绍了Shell脚本中注释的实现方法,重点讲解了以下内容: 1. **空命令(:)的使用**:空命令可以与追加输入重定向(`<<`)结合,用于实现注释功能。虽然空命令本身无功能,但与条件语句结合时,可以实现“什么也不做”。 2. **反引号问题的解决**:当注释内容中包含反引号时,Shell会尝试解析,导致错误。文章提供了5种解决方法,包括添加单引号、EOF或Here Documents(WORD、_a_等)来避免解析。 3. **常用注释符**:介绍了几种常见的注释符,包括`EOF`、`_a_`、`WORD`、`BLOCK`等,说明它们的定义和使用场景。 4. **条件语句中的应用**:展示了在`if…then…`语句中使用空命令的示例,说明其在脚本中作为“无操作”命令的应用。 文章通过实例解析,帮助读者理解如何灵活运用Shell脚本中的注释功能和解决常见问题。


目录单行注释多行注释/段注释一、空命令 : 和追加输入重定向 <<二、空命令 : 和 if…then… 语句三、空命令 : 和单引号 ’

直接在行最前端加上符号 # 即可。具体用法如下所示:

# this is comment test echo “this is comment test”
:<<BLOCK ….注释内容 BLOCK

说明:

把输入重定义(<<)到前面的命令,但是 : 是空命令,所以就相当于注释了。这种方法当注释代码里出现变量引用或者是反引号的命令时,shell 会去尝试解析,会提示错误信息,反引号部分不会被注释掉。

例如:

var=`ls -l` # 这个就不会被注释掉,因为有反引号

BLOCK 为 Here Documents 中的定义符号,名称任意,只要前后匹配就行,如下两个例子中分别使用 WORD 和 _a_ 也可以:

例(1):

:<<WORD ….注释内容 WORD?

例(2):

下面的 :<<_a_ 和 _a_ 代表段注释,可以把中间的代码注释掉,_a_ 为 Here Documents 中的定义符号,名称任意,只要前后匹配就行。
for ((i=0; i<10; i++)) do :<<_a_ ? ? ? ? if [ ?]; then? ? ? ? ? … ? ? fi _a_ ? ? echo “” done

常用来作为注释的成对字符有:

EOF、_a_、WORD、BLOCK、!

备注:

EOF 截止符用作后续输入命令! 叹号一般作为嵌入内容部分’ 单引号一般用来区分内容

解决注释中有反引号的问题

方法一

:<<BLOCK’ ….注释内容 ‘BLOCK

方法二

:<<‘BLOCK ….注释内容 BLOCK’

方法三

:<<‘ ….注释内容 ‘

方法四

:<<\EOF 注释的代码… EOF

方法五

:<<‘EOF’ 注释的代码… EOF

: 就是什么也不做(do nothing)即空命令,一般用在 if…then… 条件中,用作什么也不做的命令,如下:

if [ -d $DIRECTORY ]; then ? ? : else ? ? echo ‘the directory do not exit !’ fi

扩展知识:

下面的例(1)是 Here Documents 的用法,意思是将定义符 WORD 传给某脚本或命令。WORD 的内容为两个 WORD 间输入任意内容,这样就可以在脚本中用 cmd 来执行输入而不必再重建一文件。

例(1):

cmd<<WORD any input file content WORD

Here Documents 常用在菜单屏幕中,看例(2):

例(2):
cat <<Menu 1.List 2.Help 3.Exit Menu

注意:单引号 ‘ 和冒号 : 之间要加空格。

# echo is test echo “test” echo “test” echo “test” echo “test” echo “test” ? : ‘ echo “comment” echo “comment” echo “comment” echo “comment” echo “comment” echo “comment” ‘

到此这篇关于Shell脚本注释的实现的文章就介绍到这了,更多相关Shell脚本注释内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Shell脚本注释写法