Bourne Shell의 파일 디스크립터에 대한 명령의 출력을 어떻게 캡처합니까?

StackOverflow https://stackoverflow.com/questions/624520

  •  05-07-2019
  •  | 
  •  

문제

Bourne Shell에서 명령 출력을 캡처하는 표준 방법은 $() 통사론:

output=$(mycommand)

그러나 출력이 많은 명령의 경우 쉘이 하나의 긴 문자열로 모든 것에 대한 메모리를 할당해야합니다. 나는 Unix C 함수와 동등한 도덕적 인 것을 찾는 것을 선호합니다. popen, 새로운 파일 설명자를 얻으려면 read 에서:

newfd=popen(mycommand)
while read -u $newfd LINE; do
  #process output
done

이것이 가능합니까?

도움이 되었습니까?

해결책

#!bash
ls | while read X
do 
    echo  $X is a directory entry
done

'ls'를 선택한 명령으로 바꾸십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top