【问题标题】:Escaping "#" sign转义“#”符号
【发布时间】:2012-02-21 19:38:38
【问题描述】:

我正在尝试将 wget 与包含“#”符号的 url 一起使用。无论我做什么来逃避角色,它都不起作用。我用过\、'和"。但它们都不起作用。有人有什么建议吗?

谢谢!

【问题讨论】:

  • 尝试将其 UrlEncode 为 %23 ?

标签: bash escaping wget


【解决方案1】:

如果你真的想让它有一个散列,把它作为 %23 发送。如果您尝试发送片段,请不要打扰,因为无论如何服务器都不会关心它。

【讨论】:

  • 这是我的,但还是不行 wget -a "${LOG_FILE}" -O "${HOME_DIR}/search_results.txt" "http://${APP_SERVER }:${APACHE_PORT}/atlas%23plate=${search_term}&atlas=1&structure=549"
  • 呃,你确定你不想要一个问号吗?
  • 那么它就是一个片段。再次阅读答案。
  • 我不知道你所说的片段是什么意思。是的,这听起来像是一个片段。所以我应该忽略它?
  • 将其更改为 ?。相信我。这就是你想要的。
【解决方案2】:

也许把 uri 放在'' 周围?我相信它有效

【讨论】:

    【解决方案3】:

    您是否引用了网址?如果你是,这应该不是问题。

    我猜你正在做类似的事情:

    wget http://foo.com/#!/blah
    

    代替:

    wget "http://foo.com/#!/blah"
    

    # 是 shell 脚本注释字符。

    【讨论】:

    • 是的,我引用了 url,但是当我运行它时它仍然忽略了 url 的其余部分。 wget -a "${LOG_FILE}" -O "${HOME_DIR}/search_results.txt" "http://${APP_SERVER}:${APACHE_PORT}/atlas#plate=${search_term}&atlas=1&structure=549"
    • 你不是说地图集吗?而不是地图集#?看起来您正在使用参数发出 GET 请求。那个操作符是 ?,而不是 #。
    • 不,它是一个#。听起来这是一个片段。所以它只是被忽略了。
    猜你喜欢
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2015-12-11
    • 2016-01-06
    • 2017-05-16
    • 2013-05-13
    • 2013-06-18
    • 1970-01-01
    相关资源
    最近更新 更多