linux - 运行 curl 下载的 SH 文件时出错(好像有元数据阻止它工作)
问题描述
我正在尝试构建一个在互联网上运行 sh 文件而不下载它的脚本/程序。一切正常,除了我收到“此文件/命令不存在”错误gedit
,apt
等等。然后,我尝试修改脚本以下载文件并在此之后执行它而不是运行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
还:
- PS:我知道下载文件而不阅读之前的内容是不安全的,因此我假装制作一个显示其内容的对话框,如果用户想要的话。
- PS2:你可以看到那行:
curl -s --max-redirs 10 tiny.cc/brl_$1 -L >$HOME/.br/cache/sh.sh
. 我正在制作一个功能,您可以使用带有“brl_filename”的tiny.cc短链接并访问它输入“./script.sh filename”(访问存储在“tiny.cc/brl_filename”上的SH文件)。它就像 APT-GET,但它是一个 SH 脚本“阅读器”,我使用 tiny.cc 作为“数据库”。想象一下某个网站说:“要安装我的应用程序,只需键入foo filename
或单击此按钮(foo://filename),所有斜纹都将完成。如果您想查看文件中的内容,请键入foo -v filename
或单击此按钮( foo://v:文件名)!” - 这正是我想要做的,简化所有用户的 linux 安装,包括 noobie 用户。
该项目将托管在https://github.com/Felipecconde/br上。
解决方案
推荐阅读
- vba - VBA-如何防止我的按钮在运行代码后自行删除?
- javascript - iOS 上的 Appium 自动授予权限
- android - 在请求期间改造更改字符串字符
- jquery - 如何在 android 设备上使引导模式可拖动和可滚动
- tensorflow - Tensorflow - 解释 tf.estimator.ProfilerHook "_Send" op
- c - 尝试分配二维数组时出错,然后使用它们
- c++ - 反序列化 xml 数据时出现异常
- r - 如何优化 R 中的 For 循环?我知道应用功能,但目前在应用它时遇到问题
- post - Python 通过请求模块错误 400 到 Discord Webhook
- fasttext - 将挪威文本检测为丹麦语的 fasttext 模型