【发布时间】:2019-08-09 13:41:48
【问题描述】:
我有一个需要访问文件的程序。这个文件的内容在一个变量中,我想避免创建一个真实的文件。是否可以创建某种虚拟文件??
X='some stuff'
Y='other stuff'
echo $X > some_file
echo "$Y" | command --file some_file -
通常我会将它传递给命令,但 STDIN 已经“使用中”。有没有办法将两个变量都传递给命令,而不创建 tmp 文件?
【问题讨论】:
-
在这种情况下
command是什么?许多实用程序可以从stdin读取,这将允许您“管道”数据,例如:echo "${X}" | command --file - -
非常感谢 :) 我已经更新了我最初的问题
-
{echo "$X" ; echo "$Y" ; } | command有帮助吗?祝你好运。 -
您是否拥有
command的控制权(编辑权限)。您可以添加 env var,如果它有一个值,它将在哪里处理它?cmd_cmd="$Y"; echo "$X" | command,其中command现在失去了它的环境,如果它找到$cmd_cmd,它将读取它作为输入或将其分配给其他内部变量。只是一个想法。祝你好运。 -
使用 bash 和其他一些 shell,
echo "$Y" | command --file <(echo "$X") -可以工作。
标签: linux shell file io-redirection virtual-file