Linux 如何将参数传递给下载的脚本

Linux 如何将参数传递给下载的脚本,linux,bash,github,Linux,Bash,Github,我无法将参数(要下载的URL)传递给脚本 我的目标是创建一个用于下载和安装应用程序的部署脚本。 我运行的脚本: curl url_GitHub | bash -s url_download_app GitHub上的脚本: #! /bin/sh url="$2" filename=$(basename "$url") workpath=$(dirname $(readlink -f $0)) curl $url -o $workpath/$filename

我无法将参数(要下载的URL)传递给脚本

我的目标是创建一个用于下载和安装应用程序的部署脚本。 我运行的脚本:

curl url_GitHub | bash -s url_download_app
GitHub上的脚本:

#! /bin/sh
url="$2"
filename=$(basename "$url")
workpath=$(dirname $(readlink -f $0))
curl $url -o $workpath/$filename -s
sudo dpkg --install  $workpath/$filename
据我所知,它不会将下载应用程序的URL传递到URL=“$2”变量

如果我在本地运行GitHub脚本,并传递URL以下载应用程序,它将成功执行。 Smth类似:

bash install.sh -s url_download_app

请帮助=)

-s
似乎是用于下载脚本的选项。但是,它也是
bash
所接受的选项,因此我认为您需要的是

curl url_GitHub | bash -s -- -s url_download_app

-s
似乎是用于下载脚本的选项。但是,它也是
bash
所接受的选项,因此我认为您需要的是

curl url_GitHub | bash -s -- -s url_download_app
以下内容如何(使用):

当你运行它时,你会得到:

$ bash <(cat /tmp/test.sh) "test input argument"
I got 'test input argument'
$bash以下内容如何(使用):

当你运行它时,你会得到:

$ bash <(cat /tmp/test.sh) "test input argument"
I got 'test input argument'

$bash由于GitHub上的脚本使用$2,我们应该将其作为第二个参数传递:

curl url_GitHub | bash -s _ url_download_app

\uurl\u download\u app
将被传递到GitHub上的脚本。

由于GitHub上的脚本使用$2,我们应该将其作为第二个参数传递:

curl url_GitHub | bash -s _ url_download_app

\uurl\u download\u app
将被传递到GitHub上的脚本。

不幸失败:
bash:-s:没有这样的文件或目录
(23)编写正文失败
Oops,忘记将其作为
bash
选项保留。第一个
-s
告诉
bash
将其余的位置参数视为脚本的参数,而不是
bash
本身的位置参数。
--
确保下一个
-s
被视为位置参数。不幸的是,失败了:
bash:-s:没有这样的文件或目录
(23)写入正文失败
Oops,忘记将其保留为
bash
选项。第一个
-s
告诉
bash
将其余的位置参数视为脚本的参数,而不是
bash
本身的位置参数。
--
确保将下一个
-s
视为位置参数。感谢您的建议,我尝试了从$1到$4的不同数字。正如我所提到的,如果它在本地机器上运行,它就会正常工作。如果我用1美元,它通过“-s”感谢你的建议,我尝试了不同的数字,从1美元到4美元。正如我所提到的,如果它在本地机器上运行,它就会正常工作。如果我使用$1,它会传递“-s”,我对脚本编写不是很熟悉。我试图自己找到答案,但失败了。我在这里创建了一个帐户作为我最后的机会=)我对脚本编写不是很熟悉。我试图自己找到答案,但失败了。我已经在这里创建了一个帐户作为我最后的机会=)谢谢。对于
bash,使用
bash时,参数的数量似乎适合我。感谢您的澄清。谢谢。对于
bash,使用
bash时,参数的数量似乎适合我,感谢您的澄清。