xterm이 동일한 명령에 대해 작동하는 동안 urxvt가 작동하지 않습니다.

xterm이 동일한 명령에 대해 작동하는 동안 urxvt가 작동하지 않습니다.

xterm -e 'sudo iotop -aP'
urxvt -e 'sudo iotop -aP'하지 말고 일해라

top이 명령은 두 가지 모두에서 작동합니다.

무슨 일이 일어났는지 아세요?
어떻게 작동하게 만들까요?

답변1

xterm이 주어진 명령을 실행하거나 전달하기 위해 여러 번 시도하기 때문에 xterm에서 작동합니다.execvp 호출. 첫 번째 경우에는 다음의 모든 토큰이 -e단일 문자열로 처리되고, 후자의 경우 토큰은 다음과 같아야 합니다.분리된(execvp 호출의 경우). 이는 인터페이스의 부작용입니다.luit, 분명하지 않을 수도 있습니다매뉴얼 페이지에 언급되어 있습니다.:

예를 들어 로케일 필터를 사용할 때 다음을 사용하십시오.-e옵션 또는 셸,xterm먼저 이 필터를 통해 제어권을 전달해 보세요. 실패하면,xterm로케일 필터 없이 다시 시도합니다. Xterm 재시도하기 전에 실패에 대해 경고합니다.

하지만보고소스 코드더 명확해질 것입니다 (command_to_exec다음에 사용되는 문자열 배열입니다.-e옵션, 하지만command_to_exec_with_luit명령 문자열을 결합하려는 첫 번째 시도입니다.xterm).

대부분의 터미널 에뮬레이터는 이 작업을 수행하지 않습니다.

답변2

따옴표 제거가 작동합니다.

urxvt -e sudo iotop -aP

관련 정보