xterm은 .cshrc를 두 번 호출합니다.

xterm은 .cshrc를 두 번 호출합니다.

저는 우분투 18.04를 실행 중이고 askubuntu에 이 질문을 했지만 응답을 받지 못했기 때문에 다른 포럼에 질문하고 다른 독자가 있기를 바랍니다. 우분투 16.04에서도 동일한 문제가 발생한다는 것을 알고 있습니다. 이 문제를 해결하는 방법을 알고 싶습니다. 또는 적어도 이것이 다른 버전의 Linux에서 더 일반적으로 발생하는지 알고 싶습니다.

다음 명령

xterm -e ' tcsh'

내 .cshrc 파일을 두 번 호출합니다. 하지만 이 명령은 한 번만 호출합니다.

xterm -e 'tcsh'

같은 것

xterm -e 'cd `pwd`;tcsh'

분명히 첫 번째 호출과 나머지 두 호출의 유일한 차이점은 공간입니다. 왜 하나의 공간이 이렇게 큰 차이를 만들어내는 걸까요?

이를 테스트하기 위해 .cshrc의 MWE 버전을 사용했습니다.

#/bin/tcsh
echo called from cshrc

에서도 동일한 문제가 발생합니다.

xterm -e " csh"

이 문제를 해결하는 방법에 대한 제안을 보내주셔서 감사합니다!

답변1

추측: 선행 공백은 호출할 명령이 없다는 것을 의미하므로 xterm이를 쉘 스크립트로 해석하고 .cshrc인수를 사용하여 표준 쉘을 호출한 다음(분명히 읽기도 함) tcsh호출하고 tcsh다시 읽으십시오 .cshrc.

를 사용하여 이것이 실제로 일어나는 일인지 확인할 수 있습니다 strace.

처음에 공백을 사용하지 않으면 이 문제를 "수정"할 수 있습니다.

관련 정보