首页 > 解决方案 > 运行 curl 下载的 SH 文件时出错(好像有元数据阻止它工作)

问题描述

我正在尝试构建一个在互联网上运行 sh 文件而不下载它的脚本/程序。一切正常,除了我收到“此文件/命令不存在”错误geditapt等等。然后,我尝试修改脚本以下载文件并在此之后执行它而不是运行bash <(curl -s --max-redirs 10 $2 -L),但仍然没有在职的。我意识到,如果我完成脚本,CD 到下载的 SH 文件路径并使用“bash + foo.sh”运行它,它仍然无法正常工作。我发现运行它的唯一方法是使用 gedit 编辑 SH 文件,复制所有内容,删除 SH 文件,创建一个新的 SH 文件,粘贴并运行它。

怎么了?为什么它不起作用?我想只用 bash 在网上运行一个 SH 脚本而不下载它(bash 和 curl)。这是我的脚本(我会在结束时将它发送到我的 github):

#!/bin/bash

input=$*

mkdir "$HOME/.br" > /dev/null 2>&1
mkdir "$HOME/.br/cache" > /dev/null 2>&1
rm "$HOME/.br/cache/*" > /dev/null 2>&1

if [ "$input" == "" ]
then
    echo '[X] ERRO! | ERROR! | ¡ERROR!'
    echo
    echo '[PT]: Você precisa digitar um argumento. Digite "br -- help" para obter ajuda.'
    echo
    echo '[EN]: You need to type an argument. Type "br --help" to get help.'
    echo
    echo '[ES]: Debes ingresar un argumento. Escriba "br --help" para obtener ayuda.'
    exit
fi

if [ "$input" == "--ajuda" ] || [ "$input" == "--help" ] || [ "$input" == "-h" ] || [ "$input" == "--ayuda" ] || [ "$input" == "-?" ]
then
    echo '[?] AJUDA | HELP | AYUDA'
    echo
    echo '[PT]: Acesse este link para obter ajuda: '
    echo
    echo '[EN]: Go to this link for help: '
    echo
    echo '[ES]: Vaya a este link para obtener ayuda: '
    exit
fi

if [ "$1" == "-u" ] || [ "$1" == "--url" ]
then
    curl -s --max-redirs 10 $2 -L >$HOME/.br/cache/sh.sh
    chmod +x "$HOME/.br/cache/sh.sh"
    bash "$HOME/.br/cache/sh.sh" $1 $2 $3 $4 $5 $6 $7 $8 $9
else
    curl -s --max-redirs 10 tiny.cc/brl_$1 -L >$HOME/.br/cache/sh.sh
    chmod +x "$HOME/.br/cache/sh.sh" $1 $2 $3 $4 $5 $6 $7 $8 $9
fi

还:

该项目将托管在https://github.com/Felipecconde/br上。

标签: linuxbashubuntuunixsh

解决方案


推荐阅读