Shell脚本多行注释

Che*_*ran 2 shell sed

我有一个大的shell脚本文件.有时在做修改时我想要注释掉它的一部分.但是如下例所示的注释行给了我错误.

脚本:

#!/bin/bash
<<COMMENT1
read build_label
read build_branch_tag
build_date_tag=$(echo $build_label | sed "s/$build_branch_tag//g")
echo $build_path
COMMENT1
echo "HELLO WORLD"
Run Code Online (Sandbox Code Playgroud)

错误信息:

sed:第一个RE可能不是空的

我只想了解上述脚本的错误以及为什么评论部分无法正常工作.

hek*_*mgl 7

首先,使用这里的文档来评论代码真的很脏!使用#来代替.如果要评论多行,请使用编辑器.在vim中(例如,从10到15的注释行):

:10,15s/^/#
Run Code Online (Sandbox Code Playgroud)

但是,要解决当前的问题,您需要将单个引号中的起始here-doc分隔符括起来,如下所示:

<<'COMMENT'
...
COMMENT
Run Code Online (Sandbox Code Playgroud)

使用单引号告诉bash它不应该尝试在这里的doc体内扩展变量或表达式.