【问题标题】:shell script for getting csv with curl使用 curl 获取 csv 的 shell 脚本
【发布时间】:2013-06-27 05:44:18
【问题描述】:

我觉得这个问题很简单,但是我刚开始使用shell脚本。

到目前为止我有这个:

#!/bin/bash

new_url=$(python get_url.py)
echo $new_url
curl -o mycsv_file.csv $new_url

而且它不工作(不在当前目录上创建mycsv_file.csv 文件)。我得到一个带有 python 脚本的new_url,它正在工作,因为当我执行echo 时,它会打印我想要的网址。

通常如果我这样做:

curl -o mycsv_file.csv "exampleurl.com/file_example.csv"

从控制台,它工作得很好,它在当前目录上创建mycsv_file.csv,但我不知道shell脚本有什么问题。可能是 curl 的 URL 上的 "" 存在某种问题,但我也尝试将 "" 附加到 new_url 变量中,结果是一样的。

有什么建议吗?

【问题讨论】:

  • 试试curl -o mycsv_file.csv $(python get_url.py)
  • 不工作,它的工作原理相同。
  • 它不显示错误,显示 curl 正在工作,但它花费了 0:00:01 的时间,然后完成,但没有创建文件。
  • 试试#!/bin/bash -vx?

标签: python linux bash shell curl


【解决方案1】:

试试这个:

curl -o mycsv_file.csv "$new_url"

【讨论】:

  • 我试过了,还是不行。它表明 curl 试图连接到某个地方,但没有创建 mycsv_file.csv 文件
  • 尝试不使用 -o 以便 curl 打印到标准输出 - 只是为了确保它实际上是从服务器获取数据。
  • 它什么也没显示,我认为问题出在"",但是应该如何改变new_url变量的正确方法
【解决方案2】:

问题在于 python 脚本在字符串末尾添加了换行符,因此 curl 正在检查不同的 URL(末尾带有换行符)。

【讨论】:

  • curl -o mycsv_file.csv $new_url -> $new_url 周围没有引号应该去掉末尾的任何换行符。对吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 2013-04-14
  • 2021-11-14
相关资源
最近更新 更多