OSX에서 사용할 수있는 AppleScript를 사용한 명령 모음
소개
~/.bashrc
이나 ~/.zshrc
에 추가하여 사용해 주십시오.
우리 Yosemite에서 동작을 확인하고 있습니다. (El Capitan으로 빨리 올리고 싶다 ...)
좋은 재료가 있으면 나중에 추가할 예정입니다. 코멘트란에서도 꼭 소개해 주세요.
기술
인수 참조
가장 전통적인 방법입니다.
on run argv
log item N of argv
end run
예osascript -e '
on run argv
log "Hello, " & item 1 of argv & "."
end run
' "$variable"
환경 변수 참조
이하의 신택스로 이용할 수 있을 것입니다만, 수중에서는 전혀 동작 확인 할 수 없었기 때문에 이것은 배웅합니다.
system attribute "ATTRIBUTE_NAME"
포함할 문자열 이스케이프
인수로서 전달할 수 없는 사정이 있는 경우는 이쪽을 채용합니다.
더블 쿼터 리터럴 만들기: "string"
AppleScript에서는 문자열 리터럴에 더블 쿼트만 사용할 수 있습니다.
변수의 치환 기능에서는 한계가 있으므로 Perl을 이용합니다.
또 bash와 zsh로 echo
의 거동이 다르므로 -E
로 bash에 맞춥니다.
variable='"'$(echo -E "$variable" | perl -pe 's/(?=[\\"])/\\/g')'"'
(참고) PHP처럼 달러 기호를 해석하는 언어 용 이스케이프variable='"'$(echo -E "$variable" | perl -pe 's/(?=[\\"\$])/\\/g')'"'
단일 쿼터 리터럴 만들기 : 'string'
이번에는 사용할 수 없습니다만, 참고까지 이쪽도 게재해 둡니다.
variable="'"$(echo -E "$variable" | perl -pe "s/'/'\"'\"'/g")"'"
전체 패스 얻기
AppleScript는 파일 이름을 지정할 때 상대 경로를 받아들이지 않습니다.
OSX에는 realpath
가 없기 때문에 Perl을 이용하게 됩니다.
# 単一引数
perl -MCwd -e 'print Cwd::abs_path(shift)' "$variable"
# 複数引数
perl -MCwd -e 'print Cwd::abs_path($_) for @ARGV' "$variable"
사용 예example@localhost:/bin$ variable='bash'
example@localhost:/bin$ perl -MCwd -e 'print Cwd::abs_path(shift)' "$variable"
/bin/bash
명령
터미널 프로필 변경
termprf() {
osascript -e '
on run argv
if exists (window 1 of application "Terminal") then
tell application "Terminal"
set current settings of window 1 to settings set (item 1 of argv)
end tell
end if
end run
' "$1"
}
사용 예example@localhost:~$ termprf homebrew
배경화면 변경
chwall() {
osascript -e '
on run argv
tell application "Finder" to set desktop picture to POSIX file (item 1 of argv)
end run
' "$(perl -MCwd -e 'print Cwd::abs_path(shift)' "$1")"
}
사용 예example@localhost:~/Pictures/淫夢$ chwall ご満悦先輩.png
Reference
이 문제에 관하여(OSX에서 사용할 수있는 AppleScript를 사용한 명령 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mpyw/items/3a38ec79b49e75ad6c3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
인수 참조
가장 전통적인 방법입니다.
on run argv
log item N of argv
end run
예
osascript -e '
on run argv
log "Hello, " & item 1 of argv & "."
end run
' "$variable"
환경 변수 참조
이하의 신택스로 이용할 수 있을 것입니다만, 수중에서는 전혀 동작 확인 할 수 없었기 때문에 이것은 배웅합니다.
system attribute "ATTRIBUTE_NAME"
포함할 문자열 이스케이프
인수로서 전달할 수 없는 사정이 있는 경우는 이쪽을 채용합니다.
더블 쿼터 리터럴 만들기: "string"
AppleScript에서는 문자열 리터럴에 더블 쿼트만 사용할 수 있습니다.
변수의 치환 기능에서는 한계가 있으므로 Perl을 이용합니다.
또 bash와 zsh로
echo
의 거동이 다르므로 -E
로 bash에 맞춥니다.variable='"'$(echo -E "$variable" | perl -pe 's/(?=[\\"])/\\/g')'"'
(참고) PHP처럼 달러 기호를 해석하는 언어 용 이스케이프
variable='"'$(echo -E "$variable" | perl -pe 's/(?=[\\"\$])/\\/g')'"'
단일 쿼터 리터럴 만들기 : 'string'
이번에는 사용할 수 없습니다만, 참고까지 이쪽도 게재해 둡니다.
variable="'"$(echo -E "$variable" | perl -pe "s/'/'\"'\"'/g")"'"
전체 패스 얻기
AppleScript는 파일 이름을 지정할 때 상대 경로를 받아들이지 않습니다.
OSX에는
realpath
가 없기 때문에 Perl을 이용하게 됩니다.# 単一引数
perl -MCwd -e 'print Cwd::abs_path(shift)' "$variable"
# 複数引数
perl -MCwd -e 'print Cwd::abs_path($_) for @ARGV' "$variable"
사용 예
example@localhost:/bin$ variable='bash'
example@localhost:/bin$ perl -MCwd -e 'print Cwd::abs_path(shift)' "$variable"
/bin/bash
명령
터미널 프로필 변경
termprf() {
osascript -e '
on run argv
if exists (window 1 of application "Terminal") then
tell application "Terminal"
set current settings of window 1 to settings set (item 1 of argv)
end tell
end if
end run
' "$1"
}
사용 예example@localhost:~$ termprf homebrew
배경화면 변경
chwall() {
osascript -e '
on run argv
tell application "Finder" to set desktop picture to POSIX file (item 1 of argv)
end run
' "$(perl -MCwd -e 'print Cwd::abs_path(shift)' "$1")"
}
사용 예example@localhost:~/Pictures/淫夢$ chwall ご満悦先輩.png
Reference
이 문제에 관하여(OSX에서 사용할 수있는 AppleScript를 사용한 명령 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mpyw/items/3a38ec79b49e75ad6c3d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
termprf() {
osascript -e '
on run argv
if exists (window 1 of application "Terminal") then
tell application "Terminal"
set current settings of window 1 to settings set (item 1 of argv)
end tell
end if
end run
' "$1"
}
example@localhost:~$ termprf homebrew
chwall() {
osascript -e '
on run argv
tell application "Finder" to set desktop picture to POSIX file (item 1 of argv)
end run
' "$(perl -MCwd -e 'print Cwd::abs_path(shift)' "$1")"
}
example@localhost:~/Pictures/淫夢$ chwall ご満悦先輩.png
Reference
이 문제에 관하여(OSX에서 사용할 수있는 AppleScript를 사용한 명령 모음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mpyw/items/3a38ec79b49e75ad6c3d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)