do shell script 文字列1 [administrator privileges 真偽値1] [password 文字列2] [altering line endings 真偽値2]
文字列1 | シェルスクリプトの命令 |
真偽値1 | 管理者権限で実行するか(デフォルト:false) |
文字列2 | 管理者パスワード |
真偽値2 | 行末をMac形式に変換するか (デフォルト:true)(ver.10.1.3以降) |
文字列 | 命令の結果 |
シェルスクリプトを実行し、結果を返す。
Mac OS Xは、BSD系のUNIXをベースにしたOSなので、シェルスクリプトが実行可能となっている。
10.1では、アプリケーションのTerminalを使う必要があったが、10.1.2からはOSAXを使ってシェルスクリプトの実行が可能になった。
このことで、POSIX fileと合わせて、AppleScriptとUNIX環境との親和性が大幅に向上している。
当然だが、AppleScriptだけでなくシェルスクリプトの知識が必要。
なお、使われるシェルは'sh'であり、terminalのデフォルトである'tcsh'ではないので注意(10.3以降はterminalのデフォルトは'bash')
pathなどの環境変数は、do shell script専用のものが用意されており、基本的に変更できない。
これは、スクリプトが環境依存しすぎることを回避するためのようだ。
詳しくは、次のテックノートを参照してほしい。
Technical Note TN2065: do shell script in AppleScript
do shell script "ls"
do shell script "iconv -f UTF-8 -t SHIFT-JIS " & quoted form of "~/test.txt"