따르면 이 , 중괄호 명령 목록을 배치하는 것은 현재 셀 환경에서 실행되는리스트를 야기한다. 서브 쉘이 작성되지 않습니다 .
ps
이것을 실제로 사용 하기 위해 사용
이것은 명령 줄에서 직접 실행되는 프로세스 파이프 라인의 프로세스 계층입니다. 4398은 로그인 쉘의 PID입니다.
sleep 2 | ps -H;
PID TTY TIME CMD
4398 pts/23 00:00:00 bash
29696 pts/23 00:00:00 sleep
29697 pts/23 00:00:00 ps
이제 명령 행에서 직접 실행되는 중괄호 사이의 프로세스 파이프 라인에 대한 프로세스 계층 구조를 따릅니다. 4398은 로그인 쉘의 PID입니다. 위의 계층 구조와 비슷하여 모든 것이 현재 쉘 컨텍스트에서 실행된다는 것을 증명합니다 .
{ sleep 2 | ps -H; }
PID TTY TIME CMD
4398 pts/23 00:00:00 bash
29588 pts/23 00:00:00 sleep
29589 pts/23 00:00:00 ps
sleep
파이프 라인 내부가 중괄호 안에 배치 될 때의 프로세스 계층 구조입니다 (따라서 두 레벨의 중괄호).
{ { sleep 2; } | ps -H; }
PID TTY TIME CMD
4398 pts/23 00:00:00 bash
29869 pts/23 00:00:00 bash
29871 pts/23 00:00:00 sleep
29870 pts/23 00:00:00 ps
설명서에서 중괄호 사이의 명령이 현재 쉘 컨텍스트에서 실행된다고 설명 할 때 세 번째 경우 bash
에 실행할 서브 쉘을 작성해야하는 이유는 무엇 sleep
입니까?
{ sleep 2 | command ps -H; }