Js書いてると 一行ずつ実行したくなります。
プログラムには、一行ずつ実行する手法が用意されている。
など
JavaScript for OSX Automation にもあります
対話型コンソールはありまぁぁぁす!
osascript -i -l JavaScript
osascript コマンドに -i 引数をつければインタラクティブシェルが起動します。
スクリーンショット 2014-12-10 4.26.48
インタラクティブシェルは便利!
シェルがあると、トライ・アンド・エラーがスゴく楽になります。
>> ^Dtakuya@rena:~/Desktop$ osascript -i -l JavaScript
>> var Safari = Application("Safari")
=> undefined
>> Safari.windows
=> Application("Safari").windows
>> Safari.windows[0]
=> Application("Safari").windows.at(0)
>> Safari.windows[0].tabs
=> Application("Safari").windows.at(0).tabs
>> Safari.windows[0].tab[0]
=> Application("Safari").windows.at(0).tab.0
>> Safari.windows[0].tab[0].name
=> Application("Safari").windows.at(0).tab.0.name
>> Safari.windows[0].tab[0].name()
!! Error on line 1: Error: Can't convert types.
>> Safari.windows[0].tabs[0].name()
=> "Twitter / 電話番号を入力してください"
>>
これは、Applicationの階層構造を一つ一つ降りて行って、どのオブジェクトどう使うのか調べいるところす。
osascript について
osascriptはコマンドラインから、applescriptを実行するコマンドです。JavaScriptにも対応しました。
AppleScript でインタラクティブシェルを起動するとき
osascript -i
JavaScript でインタラクティブシェルを起動するとき
osascript -i -l JavaScript
他にも、ファイルを名を指定して実行したり
osascript -l JavaScript test.js
標準入力からスクリプトを受け取ったり
cat test.js osascript -l JavaScript
ワンライナーっぽくかけたり
osascript -l JavaScript -e "var app = Application('Safari'); app.activate()"
などなど、osascriptは結構使えます。
osjscript 書きました。
" osascript -l JavaScript -i "はパパっと書くにはあまりにも長い。だからコマンド作った
- パイプで渡されたら、パイプで実行
- ファイルが指定されたら、ファイルを実行
- それ以外はインタラクティブ・シェルを起動