개행 문자로 인해 번역 리소스를 -xrm에 전달할 수 없습니다.

개행 문자로 인해 번역 리소스를 -xrm에 전달할 수 없습니다.

-xrm 매개변수를 명령줄에 추가하면 리소스를 X 응용 프로그램에 전달할 수 있습니다. 따라서 Xmessage 배경을 회색으로 하려면 xmessage Hi -xrm "xmessage*background: grey".

이벤트 번역을 수정하려면 상황이 까다로워집니다. 내 안에는 .Xresouces이게

Xmessage*Translations:#override\
    <Key>F10:exit(-1) \n\
    <Key>q:exit(-1)

설정 성공F10그리고키를 사용하여 Xmessage 창을 종료할 수 있지만 줄 바꿈 및 백슬래시 이스케이프 때문에 명령줄에서 -xrm을 사용하는 데 문제가 있습니다.

나는 성공하지 않고 다음 세 가지 명령을 시도했습니다.

xmessage Hi -xrm "xmessage*Translations:#override <Key>s:exit(4)
    <Key>r:exit(3)
    <Key>p:exit(2)"

xmessage Hi -xrm "xmessage*Translations:#override\
    <Key>s:exit(4)\n\
    <Key>r:exit(3)\n\
    <Key>p:exit(2)"

xmessage Hi -xrm "xmessage*Translations:#override <Key>s:exit(4)" \
-xrm "xmessage*Translations:#override <Key>r:exit(3)" \
-xrm "xmessage*Translations:#override <Key>p:exit(2)"

세 번째 명령은 마지막 키만 성공적으로 할당합니다. 다른 것들은 실패했지만 첫 번째 것은 뒤에 개행 문자를 삽입했기 때문에 작동할 것으로 예상했습니다.출구(4)그리고출구(3), 명령을 에코하여 확인합니다.

내가 무엇을 놓치고 있으며 어떻게 수정하나요?

답변1

작은따옴표를 넣어야 합니다.

xmessage Hi -xrm 'xmessage*Translations:#override\
    <Key>F10:exit(-1) \n\
    <Key>q:exit(-1)'

그렇지 않으면 개행 문자가 손실됩니다.

관련 정보