Shell: 문자열을 파일로 명령에 공급할 수 있습니까?

Shell: 문자열을 파일로 명령에 공급할 수 있습니까?

명령이 있다고 가정해 보겠습니다.

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

관련 정보