Bash에서 'if'를 확인하는 동안 새 프로세스가 생성되고 있습니다.

Bash에서 'if'를 확인하는 동안 새 프로세스가 생성되고 있습니다.
ps -ef | while read line; do
    for i in $line; do
        if [ $i = 'bash' ]; then
            echo $line;
        fi;
    done;
done;
unset i;

명령이 제대로 실행되어 Bash 프로세스를 표시하지만 추가 Bash 프로세스가 생성되어 표시됩니다. 나는 그것이 if검사 내부와 관련이 있기를 바라고 있습니다. 조건에 대해 $i작은 따옴표/큰따옴표를 사용하거나 사용하지 않고 실행하려고 했습니다 . 프로세스가 계속 생성되고 표시되는 중입니다. 나는 출력을 얻는 데 사용할 수 있었지만 이런 식으로 시도하고 싶었습니다.bashifgrep

제발 정정해주세요.

답변1

추가 프로세스는 파이프에 의해 생성됩니다.

자세한 내용은 다음을 읽어보세요.Bash와 프로세스 트리에 대한 아주 좋은 설명.

의 출력은 ps구문 분석이 가능하도록 설계되지 않았습니다. ps구문 분석을 시도할 때 pgrep.

관련 정보