将值从命令传递到另一个命令而不写入磁盘

将值从命令传递到另一个命令而不写入磁盘

我想将一个命令的输出传递到另一个命令而不写入磁盘,但第二个命令是交互式的,因此将值传递到STDIN将阻止第二个命令被分配 a pty(因此,第二个命令只接受从 a 加载该值)按设计归档)。

我想要实现的目标类似于以下内容:

generic-vault --decrypt "my-secret" | interactive-command --file /proc/self/fd/0

有什么方法可以做到这一点,同时防止同一用户运行的任何其他进程无法查看第一个进程的输出?

答案1

假设 bash (或类似的东西):

interactive-command --file <(generic-vault --decrypt "my-secret")

工艺替代

答案2

使用管道(和 bash),您可以执行以下操作:

mkfifo mypipe

while sleep 1
do
    generic-vault --decrypt "my-secret" > mypipe
done

然后通过以下方式访问信息:

read data < mypipe
interactive-command --file $data

相关内容