如何在curl因404错误而失败时停止执行安装脚本?

时间:2017-03-05 21:04:08

标签: linux bash curl

我试图在linux Mint上运行asp.net项目。我按照以下说明操作: https://blog.tonysneed.com/2015/05/25/develop-and-deploy-asp-net-5-apps-on-linux/

但是当我试图发出这个命令时:

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.s

然后我收到以下消息:

sh: 1: 404:: not found

你知道可能导致这个问题的原因吗?

1 个答案:

答案 0 :(得分:1)

您的管道无法正常运行,因为curl失败,将404错误抛入stdout,并输入sh。我们可以通过稍微修改命令序列来解决这个问题:

curl --fail -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh \
  -o dnvminstall.sh && DNX_BRANCH=dev sh dnvminstall.sh && \
  source ~/.dnx/dnvm/dnvm.s && rm -f dnvminstall.sh
  • --fail选项强制curl在404
  • 时退出非零值
  • -o将安装脚本下载到本地文件
  • &&而不是|curl失败时停止的方式链接命令
  • rm -f dnvminstall.sh最后清理下载的脚本。

见这篇文章:

How to make curl exit non-zero status when HTTP status is not a 200