使用echo输出作为脚本stdin的输入

时间:2012-02-06 13:12:34

标签: bash stdout stdin

有一个脚本“X”,根据输入将导出一些环境变量。

要在另一个脚本“Y”中运行“X”,我会执行以下操作:

echo "some input" > temp_file
source X < temp_file

有没有其他方法可以做到这一点,而不使用临时文件?

据我所知,在管道的情况下,创建子流程,并运行以下行

echo "some input" | source X

无法在当前脚本中设置或修改环境变量。

1 个答案:

答案 0 :(得分:5)

使用process substitution

source X < <(echo "some input")

它基本上允许您将进程的输入/输出重定向到另一个进程,就好像它是一个文件一样。