마지막으로 실행된 PID를 기본 프롬프트 문자열에 추가하는 방법은 무엇입니까?

마지막으로 실행된 PID를 기본 프롬프트 문자열에 추가하는 방법은 무엇입니까?

나는 이 질문에 대한 답을 찾기 위해 몇 시간을 보냈습니다. (기본) 이름을 (PS1?) 변수에 추가하고 현재 실행 중인 프로세스 ID를 .bashrc의 (PS2?) 변수에 추가하고 싶습니다. 내 표현이 정확하지 않을 수 있지만 이것이 프롬프트 문자열에 추가하려는 이미지입니다.여기에 이미지 설명을 입력하세요.

위의 예에 사용된 C 코드는 다음과 같습니다. 여기에 이미지 설명을 입력하세요.

우분투 18.04.1 LTS를 사용하고 있습니다. 내가 사용한 이미지는 프롬프트 문자열에서 (기본)과 PID를 생략했습니다.

변수에 $$ 및 $PPID를 추가해 보았습니다.

답변1

이는 PS1이나 PS2 또는 프롬프트나 쉘과 관련된 다른 것과는 아무 관련이 없습니다. C 프로그램을 실행 중이고 프로그램이 PID를 인쇄하고 있습니다. 코드를 살펴보세요:

printf("(%d) addr pointed to by p: %p\n", (int) getpid(), p);

따라서 괄호 안의 숫자는 호출에 의해 반환된 프로세스의 PID입니다 getpid(). 그렇기 때문에 인쇄된 것을 볼 수 있습니다. 위의 줄을 다음과 같이 변경하면

printf("(foo:%d) addr pointed to by p: %p\n", (int) getpid(), p);

foo:PID 앞에 인쇄된 것을 볼 수 있습니다 .

관련 정보