• 締切済み

HP-UXでJAVAのAPよりUNIXのシェルを叩きシェル内のコマンドの戻り値を拾う方法を教えて下さい。

お世話になります。 シェルの作成と戻り値の件で教えて頂きたいと思っております。 HP-UXでJAVAのAPよりUNIXのシェルを叩き、シェル内で実行したコマンドの戻り値をJAVAのAPで拾う事は出来るのでしょうか? ※コマンドはsophos(ウィルスソフト)のsweepコマンドを想定しています。sweepコマンドの戻り値を拾いJAVAのAP内でハンドリングしたいと考えています。 大変恐縮ですがご教授頂ければ幸いです。

  • BSD系OS
  • 回答数1
  • ありがとう数11

みんなの回答

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

Java 素人なので参考にしないように。 ググってみたら java.lang.Runtime.exec(String command) ってのがあるみたいだけど?

Tarou_A
質問者

お礼

アドバイスありがとうございます。 そうですよね、JAVAでシェルの正常異常の実行結果の戻り値(0、1)は拾える様なんですよね・・・。 言葉足らずで恐縮です、、詳しく情報を追加いたしますと、 実現したいのは、シェルでラッピングしたコマンドの実行結果をJAVAに返したいとおもっているんです。 知識不足で申し訳ございません。

Tarou_A
質問者

補足

言葉足らずで恐縮です、、詳しく情報を追加いたしますと、 実現したいのは、シェルでラッピングしたコマンドの実行結果をJAVAに返したいとおもっているんです。

関連するQ&A

  • UNIXのシェル

    シェルに関して質問です。 0526とか0525のところは一日ごとにフォルダが作成されます。 unix\yasu\0526\hobby\test.txt unix\yasu\0526\hobby\test.txt unix\tomo\0525\hobby\test.txt unix\tomo\0525\hobby\test.txt ./check.sh MMDD 実行するときにMMDDのところに日付を入れてフォルダがあればコマンド1を実行するようにしたいです。 引数に指定した文字を判定するにはどうしたらいいのでしょうか? よろしくお願いします。 ----------------------------- #シェルの名前は「check.sh」です #! /bin/sh if [ $1 = "日付" ] ; then コマンド1 else コマンド2 fi -----------------------------

  • コマンドの戻り値が「130」

    linux初心者です。 下記のようなシェルを作成して実行したとき、javaの実行途中で [ctrl+c]で中断すると戻り値(echoのところ)が130となります。 これってjavaの仕様ですか?ググっても見つからなかったもので。 ---------------- #!/bin/sh java Exec echo $? ---------------- ・環境 redhat enterprise linux 4  jdk1.5

  • FTPコマンドの戻り値について

    UnixのシェルでFTPを行っていますが、 接続不可の時にエラーの戻り値を取りたいと考えています。 ただ、 OPEN XXX user aaa acount bbb get ファイル名 取得先/ファイル名 bye というシェルを実行した場合、接続先XXXが有り得ない場合、 戻り値($?)が0以外かと思っていたのですが、表示させると0になっていました。 接続できません、というメッセージは表示されるのですが。。。 戻り値でエラーを判断する方法をご存知の方、よろしく お願いします。

  • perlスクリプト内でシェルコマンドを実行するには??

    タイトル通りなのですが、perlスクリプト内でシェルコマンドを実行させる方法が分からなく、困っています。 実行したいシェルコマンドはUNIXのcrontab なのですが・・。 また、perlスクリプト内以外でシェルコマンドを実行する方法はあるのでしょうか?? どなたか分かる方いらっしゃいましたらご教授いただけると幸いです。よろしくお願いします。

    • ベストアンサー
    • Perl
  • シェルからpsqlコマンドでトランザクション

    標題についてご教授下さい。 シェル内でpsqlコマンドから オプション c にて BEGIN ↓ DELETE ↓ COPY xxx FROM xxx.sql ↓ COMMIT の流れでシェルコマンドを実行したいのですが、 いい方法ありますでしょうか。 もちろんエラーハンドリングもしたいです。 COMMIT前に エラーがあったらROLLBACK したいです。 シェルだと難しいのでしょうか。

  • AIX/HP-UXでパスワード変更シェルを作成したい

    AIX/HP-UXで一括でパスワード変更を実行するシェルを 作成したいと考えております。 (最終的には複数サーバの複数ユーザのパスワードを  一括変更したい) そこで、AIXで以下の様なシェルを作成したのですが、 パスワード変更することができませんでした。 -------------------------------------- PASS=$1   "新パスワード USER=$2   "パス変するアカウント名 passwd $USER sleep 5 $PASS sleep 5 $PASS -------------------------------------- passwdコマンド自体は実行されるのですが、 その後の新パスワードが入力されておらず、 passwdコマンドタイムアウト後に新パスワードが 実行され、"新パスワードの文字列"が見つかりません。 となってしまいます。 インターネット等で検索した結果、linuxであれば expectコマンドを使用して、passwdコマンドを実行した 際に出力される「新パスワード:」を待ってから 入力すればよいということがわかったのですが、 linuxでexpectコマンドに相当するものを、AIXでは 見つけることができませんでした。 AIX/HP-UXにおいて、シェルスクリプトにてパスワード 変更を実現する方法をご存知の方がいましたら、 教えてください。 よろしくお願いします。

  • teeコマンドを使わずにUNIXで標準出力とエラー出力を、ファイルと標準出力の両方に出すには?

    UNIX系のBシェルで、 コマンドを実行して、 その標準出力とエラー出力をログファイルに出力し、 かつ、同じものを標準出力にも出力したいのです。 また、その後でコマンドの戻り値$?をエラーチェックしたいです。 このため、パイプでteeコマンドを使用すると戻り値が上書きされてしまいます。 いったん一時ファイルに出力するしかないのでしょうか?

  • unixのシェルを自動で、キックしたい

    現在のUNIXのデイリーバッチジョブの起動を、できる範囲で自動化したいのですが、 UNIX初心者の為、どうしたら良いのか、全く判りません。 《現在の流れ》 (1)windows のoutlookメールで、バッチジョブの依頼を受ける。(リクエスト項目は、対象日付と対象時間) (2)telnetでunixサーバにログインして、対象の業務のシェルの日付をパラメータで渡して、 手動でシェルをキックをする。 (3)cronで完了メールと実行ログの送出をする。 unixは、HP-UX11.0で、kシェルを使用しています。 上記のような事は、どうしたら実現できるのでしょうか?。 また、wshで、メールの解析をして、バッチジョブ依頼メールから、リクエスト項目を抽出し、 unix シェルの自動起動をする。などという事は、可能なのでしょうか?。 どなたか、詳しい方、お教え願い下さい。 よろしくお願い致します。 同じような運用の仕方をされている方、もしくはお判りの方、ぜひお教えください。

  • scanfのようなUNIXコマンドはあるでしょうか

    このカテゴリでよいのかわかりませんが、質問させて頂きます。 OSはHP-UX11.23を使用しています。 スクリプトを実行する際、一旦ストップしたい場所を 指定したいと思います。 その際、scanfのようなUNIXコマンドがあるでしょうか。 ctrl+cなどでは、指定した個所でストップできません。 scanfであれば、キー入力するまでストップできるし、 どのようなキーを入力しても、次の処理に移ることが 可能です。 決まったキーを入力しなければならない場合、間違える とそのスクリプトは終了してしまうと思うので、 scanfのようなUNIXコマンドを教えて頂ければ と思います。 よろしくお願いします。

  • perlからsystemコマンド呼ばれる時のシェルについて

    HP-UX/perl4 で作成したスクリプトを、Linux(Red Hat)/perl5 へ移植するに当たって、system関数の動作が異なり困っています。 HP-UX では ksh をシェルとして使用していたため、perl からのsysytem関数で実行するsystemコマンドも、kshで動作するものを使っていました。Linuxでもログインシェルをkshに設定しました。 ところが、HP-UXで使っていたprintコマンドが使用できず、以下のエラーメッセージが出ます。 sh: print: command not found シェルはkshを指定していても、perlからsystem関数やバッククウォート`` でシステムコマンドを実行するときは、shが使われるようなのです。 perl内の記述は以下のとおりです。 system("print 'a'"); "print"の前に"ksh "をつけたり、"print"を"echo"に変えると、正しく動作します。 移植するperlの本数が多いのと、print以外にもこの問題が起きるかもしれませんので、できれば perl 内からのシステムコマンド実行時にもログインシェルとおなじ ksh で動くようにしたいのですが、どのようにすればよいのでしょうか? よろしくお願いいたします。