当前位置: 首页 > 知识库问答 >
问题:

bash:变量插入curl调用不起作用[重复]

秦哲瀚
2023-03-14

第一个命令从最后一个git提交中删除第一个单词,第二个命令尝试对apiendpoint进行post调用,将该变量作为调用的一部分,第三个命令只打印该变量,以确保其正常工作。请参见下面的代码

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中的“Item没有正确设置”,但是它确实正确地回显了正确的变量。所以我知道第一线起作用了。如果我复制curl命令并将其粘贴到bash中,用实际值替换$something,它就能正常工作。

共有1个答案

全昊焜
2023-03-14

单引号不展开其中的$variables。试试看

'{"item":"'"$SOMETHING"'"}'

取而代之。简要说明:

  • '{“item”:“'是由单引号分隔的字符串,其中包含双引号
  • “$something”是一个用双引号分隔的字符串,它扩展变量$something
  • '“}'再次是一个''分隔的字符串,包含双引号
  • 简单地将这些字符串写在一行中,没有空隙,这就是字符串连接
 类似资料:
  • 问题内容: 我想插入变量,并到我的桌前。现在,从我可以告诉我的所有信息中,我应该做的就是,下面是我所要做的,但是这根本不会在我的表中插入任何内容。如果我对应该写的内容进行硬编码(使用它将示例写到表中,那么到目前为止我的连接和语法正确)。任何帮助将不胜感激! 我也尝试过这个: 和: 问题答案: 您需要将SQL语句和参数作为单独的参数传递: 或使用可变参数语法(splat ) : 您的版本尝试传入包含

  • 问题内容: 我正在尝试使用bash脚本将JSON文件上传到我的noSQL数据库中,但是它不起作用,我也不明白为什么。 这是脚本: 这是错误: 当我执行命令行中给出的命令时,它仍然可以正常工作。 这是什么错误?谢谢 问题答案: 不要将命令存储在变量中;如果您绝对必须具有可用于日志记录的内容,请将 参数 放入数组中。

  • 我试图将变量插入数据库中的一个表中,由于某种原因,insert查询没有将我的值插入到所述数据库中。我已经测试了“test_input”函数,它工作得很好,我知道连接正在工作,因为我稍后在代码中使用的一个SELECT查询正在工作。我也知道输入是在$_PostSuperGlobal中,所以我认为这可能与insert查询有关,排除了其他可能性。这个查询有什么问题吗?以下是我的php代码: 这是我的HTM

  • 我正在尝试为java设置一个PATH环境变量。当我按照下面的方式设置变量值时,在cmd中输入“java”时,它可以很好地工作 但是对于下面的错误,“java”不被识别为内部或外部命令, 我用的是windows 8。你知道为什么上面的变量不起作用吗?

  • 我有变量< code>$foo="something",我想使用: 让“某事”得到回应。

  • 问题内容: 我正在使用Solr 4.2。请注意,完全导入有效,但增量导入却不起作用。增量导入不会产生任何错误,但不会获取任何更改。这是数据配置文件。 这是我没有运气的尝试。 将p.product_id =’$ {dih.delta.product_id}更改为p.product_id =’$ {dih.delta.id}以及其他方式。将updtime>’$ {dih.last_index_time