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