谁能建议如何评论 shell 脚本中的特定行而不是#
?
假设我想评论五行。除了添加#
到每一行之外,还有其他方法可以评论这五行吗?
您可以使用条件注释脚本的部分。
例如,以下脚本:
DEBUG=false
if ${DEBUG}; then
echo 1
echo 2
echo 3
echo 4
echo 5
fi
echo 6
echo 7
会输出:
6
7
为了取消注释代码部分,您只需要注释变量:
#DEBUG=false
(这样做会打印数字 1 到 7。)
是的(虽然这是一个讨厌的黑客)。您可以这样使用heredoc:
#!/bin/sh
# do valuable stuff here
touch /tmp/a
# now comment out all the stuff below up to the EOF
echo <<EOF
...
...
...
EOF
这是在做什么?Aheredoc
将直到终止符(在本例中为 EOF)的所有以下输入馈送到指定的命令中。因此,您可以将要注释掉的代码括起来
echo <<EOF
...
EOF
它将获取两个 EOF 之间包含的所有代码并将它们提供给echo
(echo
不从 stdin 读取,因此它们都被丢弃了)。
请注意,使用上述内容,您可以将任何内容放入heredoc
. 它不必是有效的shell 代码(即不必正确解析)。
这是非常讨厌的,我只提供它作为一个兴趣点。你不能做相当于C的/* ... */
对于单行注释,在行首添加 #对于
多行注释 ,从您想要开始的位置添加 '(单引号)并在您想要结束注释行的位置添加 ' (再次单引号) 。
您必须依赖 '#' 但为了在 vi 中更轻松地完成任务,您可以执行以下操作(先按退出键):
:10,20 s/^/#
10 和 20 是您要注释掉的行的开始和结束行号
完成后撤消:
:10,20 s/^#//