elasticsearch,Curl,elasticsearch" /> elasticsearch,Curl,elasticsearch" />

如何在ElasticSearch curl post中放置参数

如何在ElasticSearch curl post中放置参数,curl,elasticsearch,Curl,elasticsearch,以下是我的linux shell代码,用于将一条记录插入ElasticSearch: username="Tom" curl -XPOST 'http://192.168.0.1:9200/userdb/info/1' -d '{"user":$username}' 但它不起作用,它认为$username是一个字符串而不是一个变量。我如何解决这个问题呢?您需要将$username括在双引号中,因为它是一个字符串。那就行了 username="Tom" curl -XPOST 'http://1

以下是我的linux shell代码,用于将一条记录插入ElasticSearch:

username="Tom"
curl -XPOST 'http://192.168.0.1:9200/userdb/info/1' -d '{"user":$username}'

但它不起作用,它认为$username是一个字符串而不是一个变量。我如何解决这个问题呢?

您需要将
$username
括在双引号中,因为它是一个字符串。那就行了

username="Tom"
curl -XPOST 'http://192.168.0.1:9200/userdb/info/1' -d "{\"user\":\"$username\"}"
                                                       ^           ^         ^  ^
                                                       |           |         |  |
                                                     here         here  and  here

它不起作用,当我搜索它时,结果是:“_source”:{“user”:“$username”},它没有将$username视为变量。奇怪的是,在我的shell中尝试时,它非常适合我。你有什么样的贝壳?我在用#/bin/bashOh始终需要双引号,否则变量无法展开。请看我的答案,然后再试一次。非常感谢,它现在可以工作了。您是Linux和ES主机:-)