Windowsでは「.bat」という拡張子のファイルを作成することで、ダブルクリックするだけでコマンドプロンプトの処理を実行することができるいわゆる「バッチファイル」を作成することができます。
MacOSでもそういう機能があるのかと思って調べてみたら、shellファイルをダブルクリックするだけで起動させられることがわかったのでその備忘録です。
では始めます。
1:.commandファイル
MacOSではshellが使えます。そのshellで記述したファイルの拡張子を「.command」に変更すると、ダブルクリックするだけで実行することができます。
例えば以下のようなコードを記述してみます。
・test.command
#!/bin/bash DIR_NAME="test" echo $DIR_NAME mkdir $DIR_NAME # ルートディレクトリに作成
上記ファイルを作成して「test.command」をダブルクリックすると自動でターミナルが立ち上がり実行され、testディレクトリが作成されます。
ただしこの「.command」ファイルが実行されるのは「ルートディレクトリ」なのでファイルが存在するカレントディレクトリで実行させるには「cd `dirname $0`」の記述を追加します。
・test2.command
#!/bin/bash cd `dirname $0` # カレントディレクトリに移動 DIR_NAME="test" echo $DIR_NAME mkdir $DIR_NAME # カレントディレクトリに作成
2:実行権限がない場合
エディタなどで.commandファイルを作成した場合に権限がなくて実行できない場合があります。
その場合は以下のコマンドで実行権限を付与する必要があります。
chmod u+x [ファイルパス]
3:.commandファイル実行後にターミナルを終了させたい場合
.commandファイルを実行してもターミナルウィンドウは自動的に閉じてくれません。
自動的にターミナルを終了して欲しい場合はターミナル側の設定を変更する必要があります。
設定を変更するには「ターミナル」→「環境設定」を選択します。
「プロファイル」→「シェル」タブ→「シェル終了時」のプルダウンから「シェルが正常に終了した場合は閉じる」を選択します。
これでターミナルウィンドウを自動的に閉じてくれるようになります。
以上がMacOSでバッチファイルを作成する方法です。
個人的にあまりバッチファイルを作ることはないのですが、覚えておくとちょっとしたツールを作る時に便利だと思います。
・参考資料