仕事上、Windowsのbatファイルを作成することがよくある。
パソコンをまともに触るまではコマンドラインすら使いもしなかったが、
意外といろんな操作を自動化できて楽しい。
で、batファイル的なものをMacでも作ろうかと思ったが、意外と落とし穴があったのでメモ。
-
- シェルスクリプトで実行内容をテキストに記述
- 以下の様なスクリプトを任意のテキストエディタで記述する。
1234#!/bin/bashMY_DIRNAME=$(dirname $0)cd $MY_DIRNAME<実行内容>
このとき、改行コードをUNIX(LF)にする。
そのため、テキストエディタは何でも良いが、改行コードを設定できることにすること。
記述したら、このファイルの拡張子を”.command”として保存する。
-
- ターミナルからコマンドファイルの実行権限を付ける
- 上記のファイルをそのまま実行しようとしても、「適切なアクセス権限がないため実行できません。」となり、実行できません。
そこで、ファイルを実行できるようにアクセス権を設定します。- ターミナルを開き、先ほど作成したファイルを保存したディレクトリに移動する。
- 以下のコマンドを実行し、実行権限を付ける。
1chmod u+x <ファイル名>.command
後は.commandファイルを実行するだけでターミナルが開かれ、記述した操作内容が実行される。
実行後、ターミナル画面がそのまま残ると味が悪いので、終了後画面が閉じるようにターミナルを設定すると良い。
- ターミナルから、「ターミナル」→「環境設定」を開く
- 「設定」→「シェル」タブで、「シェルの終了時」を「シェルが正常に終了した場合は閉じる」にする
以上。
僕はC#で作ったファイル整理系コンソールアプリをmonoで実行させるのによく使っています。
コマンド内容は以下の通り。
1 2 3 4 |
#!/bin/bash MY_DIRNAME=$(dirname $0) cd $MY_DIRNAME mono /Users/(中略).exe |
来月には帰国できる・・・はず。