【问题标题】:populate variables when using bash curl使用 bash curl 时填充变量
【发布时间】:2017-05-29 06:45:16
【问题描述】:

我很难弄清楚为什么我的变量 ${coor1} 和 ${coor2} 在这个 curl 中使用时没有填充

curl 本身适用于静态坐标,但不适用于变量,谁能指出正确的方向,在此先感谢 :)

coor1=55.860734
coor2=9.808663

stored_address=$(
  curl -s "http://maps.googleapis.com/maps/api/geocode/json?latlng=${coor1},${coor2}&sensor=false" |
  grep -B 1 "route" |
  awk -F'"' '/short_name/ {print $4}')

echo "stored address = ${stored_address}"

【问题讨论】:

  • 发布的代码对我有用(输出是 Islandsvej)。投票结束时无法重现。
  • 感谢您的 cmets,我会查看其他链接的问题,但我仍然想知道为什么我的代码适用于其他人,但不适用于我......我刚刚检查了我的 curl 包最新的
  • 感谢您的 cmets,问题中发布的代码有效,这是我自己的错误,因为我错过了带有变量 $coor2 的行,我认为它是 # - 但它不是...我运行 curl - v 进行调试并以这种方式发现错误...

标签: bash curl reverse-geocoding


【解决方案1】:

尝试下一个微小的变化:

coor1=55.860734
coor2=9.808663

stored_address=$(curl -s "http://maps.googleapis.com/maps/api/geocode/json?latlng="$coor1","$coor2"&sensor=false" | grep -B 1 "route" | awk -F'"' '/short_name/ {print $4}')

echo "stored address = "$stored_address

输出

stored address = Islandsvej

【讨论】:

  • 打破引用肯定不能解决 OP 的问题。
  • 感谢您的回答,您的输出肯定是正确的,但是如果我按照您的建议进行更改,我仍然没有输出/空变量
  • @BulletEyeDK,但你能打开 cmd/console 并 ping 它吗?可能是代理问题?
  • 我在运行 ubuntu 12.04 LTS 的虚拟机中运行我的 bash 环境,它可以毫无问题地 ping 本地主机,但它肯定可能是代理问题,因为这是在工作的工作 PC 上,在一家员工人数超过 500 人的公司中……我不确定如何控制这是否是代理问题
  • @BulletEyeDK,如果您知道代理连接,只需将其添加到您的请求中即可curl --proxy <[protocol://][user:password@]proxyhost[:port]> -s ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-28
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多