源 (.) 管道卷曲输出

4 shell environment-variables curl

我的网络服务器上有一个文件 f,其中包含以下内容:

alias ll='ls -l'
Run Code Online (Sandbox Code Playgroud)

我想(从另一个 linux 机器)执行以下操作,但我无法正确执行命令:

curl http://myserver/f | ?
Run Code Online (Sandbox Code Playgroud)

在哪里?将每一行读入当前环境。因此,鉴于上述文件,这将与执行相同的效果

% alias ll='ls -l'
Run Code Online (Sandbox Code Playgroud)

在当前的 shell 进程中。这可能吗?

ale*_*lex 6

怎么用eval "$(curl "$URL")"

但是你最好确定你得到了正确的 URL,并且下载的代码不会做任何令人讨厌的事情。


小智 5

/dev/stdin在 Bash 中,您可以在将命令的输出重定向curl/dev/stdin单行后尝试进行采购,如下所示:

source /dev/stdin  <<< "$(curl http://myserver/f)"
Run Code Online (Sandbox Code Playgroud)

这应该避免在子 shell 中进行(源)变量赋值(这对于父 shell 来说是不可见的)。