AppleScriptでファイルにログを書き出す
AppleScriptは通常スクリプトエディタ.appで書くと思いますが、 スクリプトエディタではその場ですぐコンパイル、実行ができ、
1
|
|
みたいに、log
というコマンドを使ってスクリプトエディタのコンソール部分に
ログを書き出すことが出来ます。
もっとやろうとすると
1
|
|
と、display dialog
を使うと内容をポップアップウィンドウに表示できます。
このポップアップのものはどこでも使えますが その場その場で最前面ウィンドウに出てきて止まるので スクリプトによっては全く使えないこともあります。
のでやはりlog
で見たいわけですが、
スクリプトを直接実行したりBetterTouchToolとかで
ショートカットキーからスクリプトを呼び出す場合には
スクリプトエディタを使わないのでこのlog
のアウトプットがみれません。
そこで直接外部ファイルに書き出したいわけですが、 ファイルをオープンして書き出す、的なことがAppleScriptでは出来ない(素直には出来ないと思う、多分) ので シェルコマンドを呼んでそれを使って書き出します。
AppleScriptでは
1
|
|
の様にdo shell script
でシェルスクリプトを実行することが出来ます。
その中でecho
とかで出力してあがればOK。
これを使って簡単に出力出来る関数とかを用意してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
こんな感じ。
echo
という関数で内容をファイル
(この場合は~/log/echoTest.log)に出力していける様になります。
mkdir
など、AppleScriptにもmake new folder
とか出来るんですが、
複数階層作る必要があったりする場合結構面倒なので
シェルスクリプトでやってしまいます。
以下、Main content
より下に実際のコードを書いていって、
ログが欲しいところで
1
|
|
の様に呼んであげれば、~/log/echoTest.logに
[2016年10月26日水曜日 XX:XX:XX] test output
みたいな出力がなされます。
テストが終わって必要なくなれば先頭の
1
|
|
を
1
|
|
にしてあげればログを書き出さなくなります。
この
Main content
より上の部分を適当なスクリプトの先頭にコピペすれば
そのスクリプトでもすぐにecho
が使えるようになります。