답변:
간단히 말해 :
스크립트를 사용하십시오.
#! /bin/sh
# With some window selection magic, or a sleep
# if you want to do that manually.
xdotool type word
xdotool key Return
그리고 스크립트 경로를 Exec
필드 에 넣으십시오 .
긴 이야기:
xdotool
맨 페이지 에 따르면 :
type
Supports newlines and tabs (ASCII newline and tab).
With respect to "COMMAND CHAINING", this command consumes the
remainder of the arguments and types them. That is, no commands can
chain after 'type'.
셸 구문이므로 시작 응용 프로그램은 셸 구문을 지원하지 않으므로 명령 체인을 통해 ;
또는 &
불가능합니다. 그러나 원하는 것을 Enter입력 한 후 누르기 만하면 회전하는 방법이 있습니다.
"ASCII"줄 바꿈이라고해서 맨손을 의미하는 것은 아닙니다 \n
. 그리고 명령 대체 ( xdotool type "$(printf '\n')"
)는 줄 바꿈 줄을 먹는다. 이 xdotools
포럼 게시물을 따라 다음을 시도했습니다.
xdotool type "$(printf 'date\n ')"
그리고 효과가있었습니다. 그러나 뒤에 약간의 문자가있는 경우에만 작동하며 \n
, 분명히 뒤에 공백이 남습니다. 원하는 것은 아닙니다. 나는 그것을 다음과 같이 수정했다.
xdotool type "$(printf 'date\n\e ')"
그리고 이것은 작동하며 후행 공간을 남기지 않습니다. 그러나 쉘에서 Vi 모드를 사용하는 사람들에게는 문제가 발생할 수 있습니다.
@steeldriver의 의견 덕분에 나는 이것이 명령을 실행하는 터미널에서 시도했기 때문에 알아 냈습니다. 누르기 Enter와 xdotool
명령 사이의 작은 간격 으로 단일 줄 바꿈이 올바르게 등록되기에 충분했습니다. 그러므로:
sleep 0.1; xdotool type $'date\n'
따라서 라인을 인용하여 연장하십시오.
xdotool type 'date
'
또는 @steeldriver가 제안한대로 쉘 해석을 사용하는 것이 올바른 옵션처럼 보입니다.
그러나 다음을 포함하는 스크립트 :
#! /bin/sh
sleep 1
xdotool type date
xdotool key Return
에 Exec
필드 벌금을했다. 사실, 나는 항상 데스크탑 파일에서 복잡한 명령에 스크립트를 사용하는 것이 좋습니다.
/usr/bin/xdotool
shebang에 스크립트를 사용할 수 있지만 맨 페이지에 " script
모드가 완전히 구현되지 않았으며 기대에 미치지 못할 수 있습니다"라는 메시지가 표시되므로 스크립트를 bash에 집착했습니다.
나는 물건을 보았을 지 모르지만 첫 두 번의 시도 . 그것은 다른 창 대신 명령을 실행하는 터미널에서 시도한 결과였습니다.sleep
에서 type
and key
명령 사이에 (작은)을 넣어야했습니다
xdotool type 'word
에서 'Enter'키를 누른 다음 닫는 다음 '
과 같은 수행, $'word\n'
(이 떠들썩한 파티가 확장 \n
리터럴 개행 문자로 인수를 전달하기 전에 xdotool
).
'
또는 두 개의 \n
로들 $
트릭).
sleep
(작은 글의 참고를 보라). 나는 창을 바꾸지 않고 동일한 창에서 시도했지만 sleep 1
, 두 가지 방법 모두 동일한 창과 전환 후에 작동했습니다. 내 자신의 Enter 키 누르기가 어떻게 든 xdotool 줄 바꿈을 방해했다고 생각합니다. 그러나 데스크탑 파일의 더 복잡한 요구 사항에 대해서는 여전히 스크립트를 권장합니다.
응용 프로그램이 여러 명령을 구문 분석하지 않고 단일 명령으로 취급하는 것 같습니다. 따라서 쉘 호출을 감싸서 단일 명령으로 만듭니다 ...
bash -c 'xdotool type date; xdotool key Return'
이제 다른 쉘 작업도 할 수 있습니다 ...
bash -c 'xdotool type "`date +"%Y-%m-%d_%T`"'
마지막에 사용 된 "date"명령에는 줄 바꿈이 포함되어 있습니다! "xdotool"이 출력합니다.
참고 :이 작업을 키보드 매크로로 수행하는 경우이 작업을 개선하기 위해 "xdotool"에 몇 가지 옵션을 추가 할 것입니다 ...
bash -c 'xdotool type --clearmodifiers -delay 0 "`date +"%Y-%m-%d_%T`"'
xdotool type $'word\r'
를 Where,$''
이스케이프가\r
반환 같은 것으로 (\n
여기서 작동하지 않습니다).