Answers:
我相信您正在寻找的是-s
选项。使用-s
,您可以将参数传递给脚本。
作为一个虚拟的例子来说明这一点:
$ echo 'echo 1=$1' | bash -s -- Print
1=Print
在这里,您可以看到stdin上提供的脚本被赋予了positional参数Print
。您的脚本带有一个-u UUID
参数,也可以容纳:
$ echo 'echo arguments=$*' | bash -s -- -u UUID print
arguments=-u UUID print
因此,在您的情况下:
curl -fsSL http://git.io/vvZMn | bash -s -- print
要么,
curl -fsSL http://git.io/vvZMn | bash -s -- -u UUID print
正如史蒂芬·哈里斯(Stephen Harris)所指出的那样,出于安全考虑,下载脚本并执行它是看不见的。
如果您的系统有/dev/stdin
,您可以使用
$ echo 'echo 1=$1' | bash /dev/stdin print
1=print
难道不是这样做:
$ echo 'echo 1=$1' | bash /dev/stdin -- print
1=--
如果要使用--
,请执行以下操作:
$ echo 'echo 1=$1' | bash -- /dev/stdin print
1=print
print
打算在这里做什么?显示正在运行的命令?如果是这样,请尝试bash -x
。注意:此curl | bash
例程是一个巨大的安全漏洞;您不知道将要运行什么,直到服务器被伪装好为止。