我有一个大的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可能不是空的
我只想了解上述脚本的错误以及为什么评论部分无法正常工作.
首先,使用这里的文档来评论代码真的很脏!使用#来代替.如果要评论多行,请使用编辑器.在vim中(例如,从10到15的注释行):
:10,15s/^/#
Run Code Online (Sandbox Code Playgroud)
但是,要解决当前的问题,您需要将单个引号中的起始here-doc分隔符括起来,如下所示:
<<'COMMENT'
...
COMMENT
Run Code Online (Sandbox Code Playgroud)
使用单引号告诉bash它不应该尝试在这里的doc体内扩展变量或表达式.