Cygwin - バッチファイルからシェルを呼び出す!

Updated:


Windows 上で動く Unix ライクな環境 Cygwin で作成したシェルスクリプトを Windows 側のバッチファイルから呼び出す方法のメモです。 ※Cygwin 側のシェルスクリプトから Windows 側のバッチファイルを呼び出す方法ではありません。

作業記録

0. 前提条件

作業した環境は Windows XP SP3 + Cygwin 1.7.9 です。 呼び出す、Cygwin 側のシェルスクリプトは、ユーザルートに配置した “hoge.sh” とします。 今回はシェルスクリプトを呼び出していますが、呼び出すものは何でもよいです。

1. バッチファイル記述方法

以下のように、”bash.exe” の置いているフォルダへ移動して、実行したいコマンドをオプション指定すればよいです。 bash のオプション “–login” は Cygwin にログインし、”-i” はインタラクティブモード、”-c” は後ろのコマンドを実行します。 “-c” より前までは既存の “cygwin.bat” と同じ内容、”-c” 以後が追加した部分です。

C:
CD C:\cygwin\bin
bash --login -i -c "./hoge.sh"

2. bash のオプション

参考までに、bash コマンドのオプションはヘルプによると以下の通りです。

$ bash --help
GNU bash, version 4.1.10(4)-release-(i686-pc-cygwin)
使用方法:       bash [GNU 長いオプション] [オプション] ...
        bash [GNU 長いオプション] [オプション] スクリプトファイル ...
GNU 長いオプション:
        --debug
        --debugger
        --dump-po-strings
        --dump-strings
        --help
        --init-file
        --login
        --noediting
        --noprofile
        --norc
        --posix
        --protected
        --rcfile
        --restricted
        --verbose
        --version
シェル オプション:
        -irsD or -c command or -O shopt_option          (invocation only)
        -abefhkmnptuvxBCHP 又は -o オプション
シェルオプションの詳細については `bash -c "help set"'と入力.
組み込みコマンドについては `bash -c help'と入力 .
Use the `bashbug' command to report bugs.

2. その他

シェルスクリプトに exit 値を指定して終了するようにしておけば、バッチ側でリターンコード(ERRORLEVEL)を取得することも可能なので、エラー処理等に利用できます。


Cygwin ユーザには常識的な内容のお話でした。 当方はこの方法を応用して Cygwin 上の Ruby スクリプトを実行するようなバッチファイルを作成し、タスクで定時起動させています。

以上です。





 

Sponsored Link

 

Comments