디스크에 쓰지 않고 명령에서 다른 명령으로 값 전달

디스크에 쓰지 않고 명령에서 다른 명령으로 값 전달

디스크에 쓰지 않고 한 명령의 출력을 다른 명령으로 파이프하고 싶지만 두 번째 명령은 대화형이므로 값을 전달하면 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

관련 정보