bash 스크립트에서 Cmd + C을 누른 것처럼 복사 명령을 호출 할 수 있습니까? 기본적으로 글로벌 단축키로 실행하는 간단한 스크립트를 작성하고 현재 실행중인 앱에서 현재 선택 항목을 가져 와서 대체하고 결과를 붙여 넣어야합니다. 이것이 가능한가?터미널에서 복사 및 붙여 넣기 명령을 호출합니다.
내가 지금까지 생각해 낼 수있는 가장 좋은 점은 pbpaste
과 pbcopy
을 사용하고 있지만 가능한 경우 자동화하고 싶습니다.
bash 스크립트에서 Cmd + C을 누른 것처럼 복사 명령을 호출 할 수 있습니까? 기본적으로 글로벌 단축키로 실행하는 간단한 스크립트를 작성하고 현재 실행중인 앱에서 현재 선택 항목을 가져 와서 대체하고 결과를 붙여 넣어야합니다. 이것이 가능한가?터미널에서 복사 및 붙여 넣기 명령을 호출합니다.
내가 지금까지 생각해 낼 수있는 가장 좋은 점은 pbpaste
과 pbcopy
을 사용하고 있지만 가능한 경우 자동화하고 싶습니다.
텍스트 선택을 수정하려는 경우 AppleScript를 사용할 수 있습니다.
osascript -e 'try
set old to the clipboard
end try
try
delay 0.3
tell application "System Events" to keystroke "c" using command down
delay 0.2
set text item delimiters to linefeed
set input to (paragraphs of (the clipboard as text)) as text
set the clipboard to do shell script "shopt -u xpg_echo; echo -n " & quoted form of input & " | rev" without altering line endings
tell application "System Events" to keystroke "v" using command down
delay 0.05
end try
try
set the clipboard to old
end try'
명령보다 다른 수정 자 키가있는 바로 가기로 스크립트를 실행하면 첫 번째 지연은 수정 자 키를 해제하기위한 것입니다. 두 번째 지연은 0.05와 같이 줄일 수도 있지만 길게 선택하거나 예를 들어 웹보기는 종종 더 긴 지연이 필요합니다. 세 번째 지연이 없으면 the clipboard
은 텍스트가 붙여 넣기 전에 old
으로 설정되는 경우가 있습니다.
the clipboard as text
및 do shell script
기본적으로 행 끝을 캐리지 리턴으로 변환합니다. echo
의 sh
은 기본적으로 작은 따옴표 안에 백 슬래시를 해석하기 때문에 shopt -u xpg_echo
이 필요합니다. 입력이 getconf ARG_MAX
바이트보다 길면 echo
을 사용할 수 없으므로 임시 파일에 쓰거나 pbpaste
을 사용해야합니다.
pbpaste
및 pbcopy
당신은 UTF-8
에 LC_CTYPE
를 설정하여 그것을 방지 할 수 do shell script
가 사용하는 환경에서 기본적으로 물음표가 비 ASCII 문자를 대체합니다.
메뉴 표시 줄 항목을 클릭하면 이벤트가 더 느려지는 경우가 많으며 메뉴 모음이 없거나 전체 화면 창에서 작동하지 않는 응용 프로그램에서는 작동하지 않습니다.
또 다른 옵션은 Automator 서비스를 만드는 것입니다. 그러나 그들은 또한 실행되기 전에 약간의 지연이 있습니다. 서비스 메뉴가 메뉴 막대에 한 번 표시 될 때까지 서비스에 대한 바로 가기가 항상 작동하지 않는 버그가 있습니다. 또한 프론트 엔드 응용 프로그램에 메뉴 모음이나 서비스 메뉴가없는 경우 서비스를 사용할 수 없습니다.
감사합니다. – DrummerB
대신 서비스를 만드는 것이 좋습니다. 서비스는 현재 선택을 취하고 수정하도록 고안되었으며 시스템을 통해 단축키 기능을 사용할 수 있습니다. – ughoavgfhw