bash coproc 하위 쉘 내 하위-상위 통신

bash coproc 하위 쉘 내 하위-상위 통신

다음 스크립트와 같은 작업을 수행하고 싶습니다.

coproc test { ls; }
base64 <&${test[0]} | wc -l

하지만 실패했고, 이는 다음과 관련이 있습니다.이것:

명령 실행 및 프로세스 대체를 위해 생성된 파일 설명자를 제외하고 파일 설명자는 하위 쉘에서 사용할 수 없습니다.

이 문제를 해결하는 한 가지 방법은 다음과 같습니다.

coproc test { ls; }
out=$(cat<&${test[0]});
echo $out|base64| wc -l

파이프를 사용하여 동일한 결과를 얻을 수 있는 방법이 있습니까?

답변1

#!/bin/bash
coproc test (ls)
wc -l < <(base64 <&"${test[0]}")

관련 정보