gpt4 book ai didi

linux - 使用 curl 从 GitHub 运行 bash 脚本

转载 作者:行者123 更新时间:2023-12-04 07:44:45 25 4
gpt4 key购买 nike

我想用 curl 从 GitHub 运行一个脚本,我可以很容易地做到这一点:

# This is safe to run but will add a few lines to .bashrc, .vimrc, .inputrc to add some configuration options.
# Please check the project before running:
# https://raw.github.com/roysubs/custom_bash/
# But this is just to illustrate the point, bash shell script on GitHub, and how to use curl to pipe it to bash
curl -s https://raw.githubusercontent.com/roysubs/custom_bash/master/custom_loader.sh | bash
我对此有一些问题,但是我希望得到一些帮助:
  • 首先,脚本总是在无人看管的情况下运行,忽略所有 read -e -p从控制台获取输入的语句。如果有更好的方法来运行脚本使其不执行此操作,我将不胜感激。其他方法来做到这一点会很棒。
  • 其次,我用git.io将上面的url缩短为https://git.io/Jt0fZ但我永远无法得到上述 curl使用这个工作的方法。即 curl -s https://git.io/Jt0fZ | bash有谁知道为什么这会失败以及解决方法使用缩短的 url 来执行远程脚本?
  • 最佳答案

    “首先”更复杂,但您可以尝试不使用管道的临时 shell 脚本。

    curl -s https://raw.githubusercontent.com/roysubs/custom_bash/master/custom_loader.sh >tmp.sh

    bash tmp.sh

    您的“第二”问题很容易解释,当您这样做时 curl -s https://git.io/Jt0fZ ,我们得到一个重定向 302,这里是提示:
    我们尝试仅从服务器获取 header : curl --head https://git.io/Jt0fZ
    HTTP/1.1 302 Found
    Server: Cowboy
    Connection: keep-alive
    Date: Sun, 25 Apr 2021 14:24:43 GMT
    Status: 302 Found
    Content-Type: text/html;charset=utf-8
    Location: https://raw.githubusercontent.com/roysubs/custom_bash/master/custom_loader.sh
    Content-Length: 0
    X-Xss-Protection: 1; mode=block
    X-Content-Type-Options: nosniff
    X-Frame-Options: SAMEORIGIN
    X-Runtime: 0.003242
    X-Node: 69d60833-56c5-4364-94c1-6f0c5b12863f
    X-Revision: 392798d237fc1aa5cd55cada10d2945773e741a8
    Strict-Transport-Security: max-age=31536000; includeSubDomains
    Via: 1.1 vegur
    我们看到 HTTP/1.1 302 FoundLocation: https://raw.githubusercontent.com/roysubs/custom_bash/master/custom_loader.sh ,不是后者的真正内容。
    因此 bash 运行空脚本,默认情况下,curl 不会像图形浏览器通常那样对新位置进行第二次调用。
    但是你可以这样做来克服默认值:
    curl -L https://git.io/Jt0fZ | bash
    man curl 给出了这个:

    -L, --location(HTTP) If the server reports that the requested page has moved to a different location (indicated witha Location: header and a 3XX response code), this option will make curl redo the request on the newplace.

    关于linux - 使用 curl 从 GitHub 运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67252996/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com