Macでシェルスクリプト経由のプログラム実行をする

Mac OSでシェルスクリプトを作って、それを実行した時に
指定したアプリ(プログラムファイル)を実行する場合の方法。

■起動方法
 パターン1)appフォルダ内の実行ファイルを起動させる
 パターン2)GUI用実行ファイルを起動させる

■作成方法
1.ターミナルを起動
$ touch test.command
$ chmod 777 test.command

2.実行するアプリを指定する
   $ vi test.command

— ファイルの中身(パターン1の場合) ————————
#!/bin/sh

cd /Applications/MAMP/MAMP.app/Contents/MacOS/
./MAMP&

cd /Applications/Firefox.app/Contents/MacOS/
./firefox&

cd /Applications/NetBeans 7.1.app/Contents/MacOS/
./netbeans&

killall Terminal
—————————————————————————-

— ファイルの中身(パターン2の場合) ————————
#!/bin/sh

#cd /Applications/MAMP/MAMP.app/Contents/MacOS/
#./MAMP&
open /Applications/MAMP/MAMP.app

#cd /Applications/Firefox.app/Contents/MacOS/
#./firefox&
open /Applications/Firefox.app

#cd /Applications/Google Chrome.app/Contents/MacOS/
#./Google Chrome&
open /Applications/Google Chrome.app

#cd /Applications/NetBeans 7.1.app/Contents/MacOS/
#./netbeans&
open /Applications/NetBeans 7.1.app
killall Terminal
—————————————————————————-

ファイルの中身は実行したいアプリのパスに置き換えてください。

ポイントとしては、
・cdで移動してからアプリを実行する
・実行するアプリの最後に「&」(バックグラウンド実行)をつける
「&」がないとアプリが連続で実行されない

3.作成した test.command をダブルクリックする

■パターン2

cron使ってシェルからGETメソッドを実行する方法

シェルから指定の時刻に特定のURLにアクセスするcronジョブを作る時は
以下の方法が取れる。

方法1)シェルからGETメソッドのパラメータ・値を取得
    [シェル側]
     % /usr/local/bin/php test.php val=1
    [PHP側]
     echo $_SERVER[“argv”];

方法2)シェルからwgetコマンドを実行
    [シェル側]
     wget “http://localhost/test.php?val=1”

方法3)phpファイルにパラメータ付きのURLを記載して、
    そのPHPファイルを実行

方法4)シェルからcurlコマンドを実行
    [シェル側]
     curl “http://localhost/test.php?val=1”

※WordPressのメール更新のwp-mail.phpを実行する場合は
 wgetではダメで、curlを使用すればOK。
 wp-mail.phpは更新する時に実行が完了するまで
 画面を開いておかないといけないらしく、wget –spider
 だと実行完了前に閉じてしまう(?)ようだ。