mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

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

[ サーバ構築 ] [ Cygwin, Windows, バッチ ]

こんばんは。

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" 以後が追加した部分です。

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

2. bash のオプション

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ 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 スクリプトを実行するようなバッチファイルを作成し、タスクで定時起動させています。

以上です。

Comments