使用curl创建一个自动安装程序以及如何传递args?

时间:2014-04-13 07:31:41

标签: bash curl

rvm安装程序使用curl安装rvm。从rvm官方网站复制,命令是 curl -L https://get.rvm.io | bash -s stable --autolibs=enabled [--ruby] [--rails] [--trace]

从中获取想法,我也想使用curl创建一个自动安装程序。这是我的安装程序脚本fetch.sh:

#!/usr/bin/env bash
# Copyright Ciel 2014

FLAG=$@
echo 'FLAG has been set to -ns '$FLAG
git clone --recursive https://github.com/imwithye/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.sh $FLAG

我尝试通过\curl -sSL http://dot.ciel.im | bash $FLAGhttp://dot.ciel.im指向我的fetch.sh脚本)安装我的程序。如您所见,我想将curgs命令中的args $ FLAG传递给fetch.sh脚本,但它失败了。

有谁知道如何将curl命令*** | bash $FLAG中的args传递给安装程序脚本?

1 个答案:

答案 0 :(得分:1)

你想要的是:

echo "$(curl -sSL http://dot.ciel.im)" | bash -s FLAG1 FLAG2 etc

带引号的echo对于不被解释为单行非常重要。然后,bash -s允许您向正在执行的脚本bash添加参数。

您还可以添加-x进行调试,查看调用的命令以及使用哪些参数。

echo "$(curl -sSL http://dot.ciel.im)" | bash -x -s FLAG1 FLAG2 etc