Macでバッチファイルを作成する方法 ~バッチファイルの場所も取得して移動する~

生活の知恵

Windowsのバッチファイルは、テキストなどで作成した後、拡張子を「.bat」にすればバッチファイルが作成できます。

Macでバッチファイルを作る際も同じく、テキストなどでファイルを作成した後、拡張子を「.command」にすればバッチファイル(Shellスクリプト)が作成できます。

ただし、少しだけ癖があるのでメモしておこうと思います。(例として「test.py」を起動する「test_open.command」というShellスクリプトを作成する場合で説明します)

.commnadファイルの作り方

ターミナルを起動して.commandファイルを作りたいフォルダに移動した後に以下のコマンドを実行しましょう。test_open.commandというファイルが作成できます。

※「touch」はファイルを新規作成するコマンド

touch test_open.command

実行権限を変更する必要あり

ファイルを作成しただけだと実行権限がないのでダブルクリックしても以下のようにアクセス権限エラーになり起動できません。

ターミナルを起動して、以下のコマンドを実行して実行権限を付与してください。

chmod u+x test_open.command

.commandファイルのカレントディレクトリに移動する必要あり

実行時は.commandがあるフォルダではなく、ユーザディレクトリがカレントディレクトリとして起動されます。

例えば、.commandファイルと同じフォルダにあるtest.pyなどを起動しようとして以下のコードを書いてもファイルが見つからず起動できません。

python test.py

この場合「cd `dirname $0`」を最初に実行することで.commandファイルがあるディレクトリに移動することができます。

cd `dirname $0`
python test.py

小技ですがなかなか見つからなかったのでメモとして残しておきます。

参考

実行場所を気にしなくてよいシェルスクリプトの作り方
作り方 シェルスクリプトの冒頭に cd `dirname 0` という一行を追記しておくと、実行場所を気にしなくてよいスクリプトになります。 具体例 /home/vagrant/sample.sh #!/bin/sh cd `dirname 0` pwd 実行権限を付与しておきます。 chmod +x /h...

コメント