下载文件并通过管道传输到多个命令

下载文件并通过管道传输到多个命令

我看到很多安装说明要求您下载文件并立即运行它,如下所示:wget https://some-site.com/some-file.sh | bash。不过,我想less首先将文件通过管道传输到 ,以便在将文件传输到 之前我可以看到该文件bash。我怎样才能在一行中做到这一点?

答案1

使用vipe来自更多实用程序。演示用seq 20而不是wget.

运行这个:

seq 20 | EDITOR=less vipe | wc -l

...并less打开管道进行查看。按q辞职 less,并且行计数wc -l出现:

20

现在做同样的事情:

seq 20 | EDITOR=less vipe | wc -l

……但这一次,击中Ctrl-C,然后q辞职 less。因为Ctrl-Cwc从不运行。

因此这应该有效:

wget -qO- https://some-site.com/some-file.sh | EDITOR=less vipe | bash 

如果代码不合适,请点击Ctrl-C

如果您想保留该文件或许不想运行它,试试这个:

wget -qO- https://some-site.com/some-file.sh | tee /tmp/some-file.sh |
EDITOR=less vipe | bash 

...它的工作原理大致相同,除了/tmp/some-file.sh也会有管道内容。

答案2

  1. 下载文件。
  2. 看它。
  3. 运行。
$ curl -O https://some/url/file.sh
$ less file.sh
$ bash file.sh

这将是最简单、最稳健的。

答案3

在 中less,您可以按 将s输入保存到文件。

或者g到达顶部然后|$bash通过管道到达bash.

相关内容