シェルスクリプト(bash)から別ファイルのプログラムやソースを呼ぶ方法を紹介します。
シェルから別のシェルを呼ぶ
sample01.sh
#!/bin/sh
cd /***/****/ #(1)
./aaa.sh #(2)
result=$? #(3)
if["$result" -eq 0]
then
echo "正常" #(4)
else
echo "異常" #(4)
fi
ポイント
①:シェルがあるディレクトリまで移動
②:シェルの実行
③:終了ステータスを受取る。
④:終了ステータスをもとにif文でそれぞれの処理を行う。
※これをしないとすぐ「$?」が0に戻るので注意
シェルからjavaを呼ぶ
sample02.java
public class Test {
public static void main(String[] args) {
/*
何かのプログラム
*/
/* 処理結果を返す */
System.out.println(result);
}
}
sample02.sh
#!/bin/sh
java Test #(1)
result=$? #(2)
if [ "$result" -eq 0 ]
then
exit '正常' #(3)
else
exit '異常' #(3)
fi
ポイント
①:javaの実行
②:終了ステータスを受取る。
③:終了ステータスをもとにif文でそれぞれの処理を行う。
シェルからWebシステムを呼ぶ
sample03.sh
#!/bin/sh
wget -O result.html "http://localhost/****/***.html" #(1)
if [ -f 'result.html' ] #(2)
then
read code < 'result.html' #(3)
rm result.html
if [ "$code" -eq 0 ]
then
exit 0 #(4)
else
exit 1 #(4)
fi
else
exit 1 #(4)
fi
ポイント
①:URLからWebシステムを呼び出す
正常なら0異常なら1のみを記述したhtmlファイルを返す
別にhtmlでなくてもwebであればphpでも、java(jsp)でも可
②:①で作られたhtmlファイル(result.html)の存在チェック
③:result.htmlの中身を変数codeへ代入
④:シェルを終了させ、終了ステータスをリターンコードとして返す。
0なら正常、1なら異常。