「コマンド/osascript」の版間の差分
提供: MacWiki
細 (208.96.11.114 (会話) による編集を MebaR による直前の版へ差し戻し) |
(→-e) |
||
行33: | 行33: | ||
osascript -e 'tell application "Finder" to activate' | osascript -e 'tell application "Finder" to activate' | ||
+ | |||
+ | |||
+ | ビープ音を鳴らす例.MacOSX 10.5.8 で動作確認. | ||
+ | (ただし鳴ったり鳴らなかったりすることもある.MacOSX 10.6.3 で確認.) | ||
+ | |||
+ | osascript -e 'beep 2' | ||
== shebang == | == shebang == |
2010年6月5日 (土) 14:12時点における版
目次
概要
AppleScript を実行するためのコマンドです。
- 場所: /usr/bin/osascript
- OS X のバージョン:Mac OS X 10.4
使い方
osascript <file>
osascript -e
osascript は指定されたファイルか、コードを AppleScript として実行します。 AppleScript ファイルをコマンドラインから呼び出せる他、Shell script と組み合わせて利用することも可能です。
-- -- sleep.scpt: sleep immediately -- tell application "Finder" sleep end tell
例えば、上のようなファイルを用意して、次のコマンドを実行すると、 30 分後に Mac をスリープさせることができます。
$ sleep 1800 && osascript sleep.scpt
オプション
-e <code>
<code> 部分の AppleScript コードを実行します。perl や ruby の -e オプションと使用方法は同じです。
osascript -e 'tell application "Finder" to activate'
ビープ音を鳴らす例.MacOSX 10.5.8 で動作確認.
(ただし鳴ったり鳴らなかったりすることもある.MacOSX 10.6.3 で確認.)
osascript -e 'beep 2'
shebang
通常の流儀で書いてよい.
- Leopard(10.5)からはshebang行も解釈されるようになりました。
$ cat astest #!/usr/bin/osascript tell application "iTunes" to play beep 3
別方法
http://www.macosxhints.com/article.php?story=20060425140531375 より
$ ./astest 3 $ cat astest #!/bin/sh exec <"$0" || exit; read v; read v; exec /usr/bin/osascript - "$@"; exit on run argv beep argv end run
(間接的に)shebangを実現
MacOSX 10.4 以前ではこちらが必要とのこと http://qz.tsugumi.org/AppleScript%252Fosascript.html
#!/usr/local/bin/osas tell application "iTunes" to play
$ cat /usr/local/bin/osas #!/bin/sh cat "$1" | (read;/usr/bin/osascript - "$@") $
シェルスクリプトと組み合わせて利用する
最も手前のフォルダー(Finderのウィンドウ)のパスを取得する
#!/bin/sh /usr/bin/osascript -e 'tell application "Finder" to get POSIX path of (target of window 1 as string)'
#!/bin/sh echo " tell application \"Finder\" get POSIX path of (target of window 1 as string) end tell " | osascript -