我无法将参数(要下载的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下载该应用程序,则该应用程序将成功执行。 像这样:
bash install.sh -s url_download_app
请帮助=)
答案 0 :(得分:0)
-s
似乎是供下载的脚本使用的选项。但是,它也是bash
接受的 选项,所以我认为您想要的是
curl url_GitHub | bash -s -- -s url_download_app
答案 1 :(得分:0)
以下内容如何(使用process substitution):
bash <(curl -Ss url_GitHub) url_download_app
我使用以下脚本进行了概念验证:
$ cat /tmp/test.sh
#!/bin/bash
echo "I got '$1'"
exit 0
运行它会得到:
$ bash <(cat /tmp/test.sh) "test input argument"
I got 'test input argument'
答案 2 :(得分:0)
由于GitHub上的脚本使用$ 2,我们应该将其作为第二个参数传递:
curl url_GitHub | bash -s _ url_download_app
_ url_download_app
将被传递到GitHub上的脚本。