Passa valor do comando para outro sem gravar no disco

1

Eu quero passar a saída de um comando para outro sem gravar no disco, mas o segundo comando é interativo, então passar o valor para STDIN impedirá que o segundo comando seja alocado em pty (por causa disso, segundo comando só aceita carregar esse valor de um arquivo por design).

O que estou tentando alcançar é algo semelhante ao seguinte:

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

Existe alguma maneira de fazer isso, enquanto outros processos executados pelo mesmo usuário não serão capazes de visualizar a saída do primeiro processo?

    
por zanbaldwin 05.12.2017 / 18:42

2 respostas

2

Assumindo bash (ou algo similar):

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

Processo de substituição

    
por 05.12.2017 / 18:47
0

Usando pipes (e bash), você pode fazer algo como:

mkfifo mypipe

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

E, em seguida, acesse as informações por meio de:

read data < mypipe
interactive-command --file $data
    
por 05.12.2017 / 18:56