【问题标题】:How to use curl in a shell script? [duplicate]如何在 shell 脚本中使用 curl? [复制]
【发布时间】:2012-01-09 06:14:26
【问题描述】:

我正在尝试运行这个 shell 脚本以便在 Ubuntu 机器中安装 RVM

#!/bin/bash
RVMHTTP="https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer"
CURLARGS="-f -s -S -k"

bash < <(curl $CURLARGS $RVMHTTP)

但我收到以下错误

语法错误:重定向意外

也没有使用变量进行测试,但结果相同,你能告诉我缺少什么吗?

【问题讨论】:

  • 您的问题已经在这里得到解答:stackoverflow.com/questions/5735666/…
  • 我在我的 Mac 上试了一下,效果很好。我猜这是 Ubuntu 的 bash(我相信是 dash)。您可能需要查看 dash 的手册页。
  • http://linux.die.net/man/1/dash
  • 如果您收到“意外重定向”,这可能意味着您使用的是 sh 而不是 bash,尽管有 shebang 行。

标签: linux bash ubuntu curl sh


【解决方案1】:
#!/bin/bash                                                                                                                                                                                     
CURL='/usr/bin/curl'
RVMHTTP="https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer"
CURLARGS="-f -s -S -k"

# you can store the result in a variable
raw="$($CURL $CURLARGS $RVMHTTP)"

# or you can redirect it into a file:
$CURL $CURLARGS $RVMHTTP > /tmp/rvm-installer

或:

Execute bash script from URL

【讨论】:

    【解决方案2】:

    首先,您的示例看起来非常正确,并且在我的机器上运行良好。你可以走另一条路。

    curl $CURLARGS $RVMHTTP > ./install.sh
    

    所有输出现在都存储在./install.sh 文件中,您可以对其进行编辑和执行。

    【讨论】:

      【解决方案3】:
      url=”http://shahkrunalm.wordpress.com“
      content=”$(curl -sLI “$url” | grep HTTP/1.1 | tail -1 | awk {‘print $2′})”
      if [ ! -z $content ] && [ $content -eq 200 ]
      then
      echo “valid url”
      else
      echo “invalid url”
      fi
      

      【讨论】:

        猜你喜欢
        • 2018-09-24
        • 2017-12-20
        • 1970-01-01
        • 1970-01-01
        • 2011-03-02
        • 1970-01-01
        • 2020-11-01
        • 2019-04-29
        • 1970-01-01
        相关资源
        最近更新 更多