提问人:torwent 提问时间:1/2/2023 最后编辑:oguz ismailtorwent 更新时间:1/2/2023 访问量:113
如何处理包含所有 3 种引号的字符串?("", '', ``)?
How do I handle a string that has all 3 type of quotes? ("", '', ``)?
问:
我知道您通常会逃避引号,但在这种情况下这不是一种选择。
这个问题在我尝试使用的 GitHub Action 中发生在我身上:它有时包含所有类型的引号,并且由于这个原因,字符串的某些部分被尝试作为命令运行。${{ github.event.workflow_run.head_commit.message }}
因此,如果尝试类似 : 并且字符串中有 ,它很有可能会破坏命令。
我能做些什么?echo "${{ github.event.workflow_run.head_commit.message }}" >> tmp.txt
""
我试过:
echo "${{ github.event.workflow_run.head_commit.message }}" >> tmp.txt
echo '${{ github.event.workflow_run.head_commit.message }}' >> tmp.txt
echo `${{ github.event.workflow_run.head_commit.message }}` >> tmp.txt
echo `"'${{ github.event.workflow_run.head_commit.message }}'"` >> tmp.txt
echo ${{ github.event.workflow_run.head_commit.message }} >> tmp.txt
echo \'${{ github.event.workflow_run.head_commit.message }}\' >> tmp.txt
我希望该命令成功运行并将变量内容保存到 tmp.txt
答:
1赞
oguz ismail
1/2/2023
#1
您可以使用 here-document:
cat <<'EOF' >>tmp.txt
${{ github.event.workflow_run.head_commit.message }}
EOF
对于第一个引号,shell 不会解释或修改此处文档正文,它将被逐字附加。EOF
tmp.txt
评论