首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Web URL导入shell/bash脚本

从Web URL导入shell/bash脚本
EN

Stack Overflow用户
提问于 2022-06-14 02:17:57
回答 2查看 176关注 0票数 0

如何从URL下载脚本,执行脚本,并将某些内容输入其中--所有这些都只需一个命令即可?

我有一个shell脚本,我可以对其进行管道:

代码语言:javascript
复制
$ echo "Test Data" | do-stuff.sh

脚本被移动到http://example.com/do-stuff.sh

试着做这样的事情:

代码语言:javascript
复制
$ echo "Test Data" | ( curl -sfL http://example.com/do-stuff.sh | sh )

但不起作用。数据不会通过管道传输到脚本中。

有一个解决办法,但是如何在不创建文件的情况下用一行来实现呢?

代码语言:javascript
复制
$ curl -sfL http://example.com/do-stuff.sh > do-stuff.sh
$ chmod +x do-stuff.sh
$ echo "Test Data" | do-stuff.sh
$ rm do-stuff.sh
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-14 03:28:35

试一试

代码语言:javascript
复制
echo "Test Data" | sh <(curl -sfL http://example.com/do-stuff.sh)

这需要在bash、zsh或ksh中运行,这是由于进程子结构造成的。

您的进程不能工作的原因是,sh进程的stdin通道已经被读取源代码占用了,所以您无法将数据输送到其中。

进程替换的作用类似于文件,因此sh可以从“文件”中获取源,并仍然从stdin读取数据。

票数 3
EN

Stack Overflow用户

发布于 2022-06-14 02:30:34

假设脚本的链接包含原始数据而不进行任何转换,那么您可以尝试这种方法。

代码语言:javascript
复制
echo "Test Data" | bash <(wget -O - http://example.com/do-stuff.sh)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72610852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档