【问题标题】:Curl command in Bash script returns no URL specifiedBash 脚本中的 Curl 命令不返回指定的 URL
【发布时间】:2019-08-08 20:40:26
【问题描述】:

尝试对测试页运行 curl 命令会导致“未指定 URL!”尝试通过 bash 脚本运行时。这是一个通过代理运行的测试(代码示例中为 1.2.3.4)

命令从命令行按预期运行。我已经在命令的组件周围尝试了一些引号变体,但仍然管理相同的“未指定 URL”结果。

echo $(curl -x http://1.2.3.4:80 https://example.company.com)

预期的结果是一个 HTML 文件,但是当从这个小 bash 脚本文件运行时发现上述问题。

命令本身在命令行中运行“curl -x http://1.2.3.4:80https://example.company.com”即可。

提前感谢您提供的任何帮助!


我已经将其编辑为以下内容。其他所有内容都被注释掉了。还是一样的错误。

#!/bin/bash

curl -x http://1.2.3.4:80 https://example.company.com

【问题讨论】:

  • 使用echo $(somecommand) 几乎总是一种反模式;直接运行命令即可。但这不应该导致这个问题。请提供minimal reproducable example。也就是说,复制您的脚本,并删除其中不相关的部分(进行测试以确保它仍然显示问题 - 如果问题消失,那么您刚刚取出的内容实际上并不是无关紧要的,需要放回去)。当它只需要显示问题的最低限度时,将其编辑到您的问题中(以代码格式)。
  • 您确定代理字符串和URL之间的空格实际上是脚本内部的空格吗?
  • @root 不知何故这确实是问题所在。我假设是由于在 Notepad++ 中将 EOL 转换为 Unix 友好造成的?无论哪种方式,删除“空间”并重新添加它都可以解决问题。谢谢。

标签: bash curl


【解决方案1】:

在您的示例中,您希望在 subshel​​l 周围使用双引号,在 curl 参数中使用单引号

确保设置正确的 shebang (#!/bin/bash)。

您也可以尝试将其运行为:

cat <(curl -x http://1.2.3.4:80 https://example.company.com)

但是我无法重现您的示例

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多