SenseTalkによるシステムとのやり取り
これらのコマンドと関数により、SenseTalkスクリプトが、スクリプトを実行しているシステムとやり取りしたり、他のプログラムを起動したり、他のプログラム内でファイルを開いたり、UNIXシェルを介してシステムコマンドを実行することが可能になります。
openコマンド
挙動:別のプログラムを開始したり、スクリプトを実行しているマシン上の別のプログラムでファイルを開きます。本コマンドの最も一般的な利用は、テキストエディタでテキストファイルを開いたり、スプレッドシートプログラムでタブ区切りファイルを開くなど、スクリプトによって生成されるファイルを開くことです。これにより、ユーザーはファイルに変更を加えたり、印刷したりすることが可能になります。スクリプトを実行しているマシン上で要求されたアプリケーションが既に起動している場合は、そのアプリケーションが前面に表示され、それ以外の場合はそのアプリケーションが起動します。
構文:
open application
open file with application
例:
open "iTunes"-- このマシン上でiTunesを起動します
例:
open "/tmp/myFile" with "TextEdit"
注:スクリプト内のコンテンツを読み書きするためにファイルを開く場合は、open fileコマンドを使用します。
shellコマンドと関数
挙動:ローカルマシン上のコマンドラインシェル内のコマンドを実行し、出力を返します。
構文:
shell command {, optionalParameters}...
get shell( command {, optionalParameters}...)
例:
shell "rm /tmp/testfile"
例:
put shell("cd /; ls -l") into rootDirectoryList
注:Windowsオペレーティングシステムには、シェルコマンドを実行する際の制限が存在します。Windows上でシェルコマンドを実行する場合は、シェルコマンドからの出力を確認できません。この問題を解決するには、パイプ処理して出力をファイルに渡すことでコマンド出力をリダイレクトします。スクリプトの完了後は、結果を確認するためにファイルの中身をマニュアルで読み取ります。
shell "c:\windows\system32\cmd.exe", <</c "C:\Program Files (x86)\adt-bundle-windows-x86_64\sdk\platform-tools\adb" >> && MyCommand && "> someFile.txt"
put file "C:\wherever\someFile.txt"
技術トピック
shellコマンドと関数はどちらも、the resultを、実行したコマンドの終了コードに設定します。一般的に、終了コードはコマンドの実行が成功すると0となり、問題がある場合はその他の値をとります。ただし、終了コードの正確な意味は、実行されたコマンドによって異なります。
コマンドは、スクリプトを実行しているマシン上で実行します。別のマシン上でシェルコマンドを実行する場合は、 rshやsshなどのリモートアクセスを提供するシェルコマンドの1つを使用できます。
関連するグローバルプロパティ
the shellCommandグローバルプロパティを利用して、デフォルトのシェルアプリケーションを制御できます。プラットフォームごとの初期デフォルトシェルとその設定変更に関する詳細情報は、the shellCommandを参照してください。