Bourne Shell의 파일 디스크립터에 대한 명령의 출력을 어떻게 캡처합니까?
문제
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'를 선택한 명령으로 바꾸십시오.
제휴하지 않습니다 StackOverflow