相关疑难解决方法(0)

在Bash中的命令中扩展变量在单引号内

我想从一个bash shell脚本运行一个命令,该脚本在单引号和变量中有单引号和一些其他命令.

例如 repo forall -c '....$variable'

在此格式中,$进行转义并且不扩展变量.

我尝试了以下变化,但他们被拒绝了:

repo forall -c '...."$variable" '

repo forall -c " '....$variable' "

" repo forall -c '....$variable' "

repo forall -c "'" ....$variable "'"
Run Code Online (Sandbox Code Playgroud)

如果我用值代替变量来执行命令就好了.

请告诉我哪里出错了.

variables bash shell quotes

344
推荐指数
3
解决办法
31万
查看次数

在bash中转义字符(对于JSON)

我正在使用git,然后将提交消息和其他位作为JSON有效负载发布到服务器.

目前我有:

MSG=`git log -n 1 --format=oneline | grep -o ' .\+'`
Run Code Online (Sandbox Code Playgroud)

它将MSG设置为:

Calendar can't go back past today
Run Code Online (Sandbox Code Playgroud)

然后

curl -i -X POST \
  -H 'Accept: application/text' \
  -H 'Content-type: application/json' \
  -d "{'payload': {'message': '$MSG'}}" \
  'https://example.com'
Run Code Online (Sandbox Code Playgroud)

我真正的JSON有另外两个领域.

这样可以正常工作,但是当我有一个提交消息(例如上面带有撇号的提交消息)时,JSON无效.

如何逃脱bash所需的角色?我不熟悉这种语言,所以不知道从哪里开始.更换'\'会做的最小,我怀疑这份工作.

bash json escaping

50
推荐指数
7
解决办法
5万
查看次数

标签 统计

bash ×2

escaping ×1

json ×1

quotes ×1

shell ×1

variables ×1