명령이 있다고 가정해 보겠습니다.
eval-some-language —-path=<filename>
우리는 다음과 같은 작업을 원합니다:
eval-some-language —-path=“say hello world!
exit 3”
다음 솔루션은 하나의 파일에 대해 작동할 수 있고 stdin이 다른 목적으로 사용되지 않을 수 있다고 생각합니다.
eval-some-language —-path=“/dev/stdin” <<<“say hello ...”
이것은 모든 명령에 적용됩니까? 휴대성은 얼마나 되나요? (애플 시스템?)
다른 방법이 있나요?
업데이트: 파일을 실행 가능해야 하는 경우 내 솔루션도, 허용되는 답변도, zsh의 =()도 작동하지 않습니다. :(
답변1
이 시도:
eval-some-language --path=<(echo "hello world")
<()는 파일 설명자를 생성하고 이를 명령 출력에 바인딩한 다음 /dev/fd/xxx로 전달합니다. 예를 들어:
$ echo <(echo aaa)
/dev/fd/63
$ echo <(echo test) <(echo second test)
/dev/fd/63 /dev/fd/62
자세한 내용은 "프로세스 대체" 섹션을 참조하세요.man bash