我有一个非常简单的bash脚本,其中包含三个命令。
第一个命令剥离最后一个git commit的第一个单词,第二个命令尝试以POST
相同的变量作为调用的一部分来调用api端点,第三个命令只是打印该变量,以确保它是好好工作。见下面的代码
SOMETHING=$(git log -1 --pretty=%B | head -n1 | sed -e 's/\s.*$//' | cut -d ' ' -f1)
curl -X POST \
http://www.someurl.com/ \
-H 'Cache-Control: no-cache' \
-d '{"item":"$SOMETHING"}'
echo "variable was $SOMETHING"
当我运行该bash脚本时,我从服务获得响应,说XML中的“项目设置不正确”,但是它确实正确地呼应了正确的变量。所以我知道第一行正在工作。如果我复制该curl命令并将其粘贴到bash中,并用实际值替换$ SOMETHING,它将正常工作。
单引号不会扩展其$variables
内部。尝试
'{"item":"'"$SOMETHING"'"}'
代替。简要说明:
'{"item":"'
是由单引号分隔的字符串,其中包含双引号"$SOMETHING"
是由双引号分隔的字符串,它扩展了变量 $SOMETHING
'"}'
还是一个-''
分隔的字符串,其中包含双引号这样,您可以进行变量扩展,但不必插入任何反斜杠即可转义双引号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句