현재 쉘을 변경하지 않고 쉘에서 strace를 어떻게 실행할 수 있습니까?

현재 쉘을 변경하지 않고 쉘에서 strace를 어떻게 실행할 수 있습니까?

strace프로세스의 동작을 추적 하는 데 사용하는 것입니다 bash. 목표는 bash구성 파일이 로드되는 순서를 찾는 것입니다 .

다음 명령을 실행하고 있습니다 zsh.

strace -e openat bash

이 명령을 실행한 후 새 셸이 표시되지만 bash그런 일이 발생하는 것을 원하지 않습니다. bash실제로 새로운 대화형 셸을 시작하지 않고 명령을 추적하는 방법이 있습니까 bash?

온라인으로 검색했지만 아무것도 찾을 수 없었습니다. exec: 을 사용하려고 하는데 strace -e openat "$(exec bash)" 2>&1쉘이 여전히 bashfrom 으로 변경됩니다 zsh.

답변1

bash즉각적인 종료를 요구하고 강제로 대화형 및/또는 로그인 셸처럼 작동하도록 할 수 있습니다 .

strace -e openat bash -i -c exit

대화형 로그인 셸처럼 작동 -l하도록 추가되었습니다 .bash

종료 시 읽은 파일( .bash_logout등)도 표시됩니다.

관련 정보