• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メッセージを求められるシェルを連続実行)

連続実行のためのシェル作成方法

このQ&Aのポイント
  • メッセージを求められるシェルを連続実行するための方法について
  • 既に存在するシェルの確認メッセージで中断されずに連続実行する手段はあるか
  • シェルに詳しい方への質問

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.3

yesコマンドも無いとは想像できなかった. OSぐらい書きましょう. でも,各スクリプトで,問い合わせが一回なら, echo y | foo001 で十分ですね.

GOGO1984
質問者

お礼

ありがとうございます。 実行できました。 yesコマンドというのがあったのですね、 知りませんでした。

その他の回答 (2)

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

きちんと「シェルスクリプト」と表記する癖をつけましょう. 本題ですが,既存のシェルスクリプト名を foo001 として, yes | foo001 でいかが?

GOGO1984
質問者

補足

回答有難うございます。 >きちんと「シェルスクリプト」と表記する癖をつけましょう. ご指摘ありがとうございます。以後、気をつけます。 実行したら、以下のとおりでした。 % yes | ファイル名 yes: コマンドが見つかりません。 ファイル名: コマンドが見つかりません。

  • utf7
  • ベストアンサー率29% (11/37)
回答No.1

readで入力を求めている構成になっていますので、まずはその部分をなくせばいいと思います。 100個連続で実行するうち、「正常の場合は続けるが異常の場合は終了する」という判定が必要であれば、 #!/bin/sh processes="process_1 process_2 ... process_100" for process in $processes do $process # 0:正常 if [ $? -ne 0 ]; then echo "異常終了しました。" exit 2 fi done のように書けばいいと思います。 なお、上記のロジックは100個のシェルを1つの中で一気に実行するシェルというイメージで書いています。 process_1は実行するがprocess_2は実行しないということが、プロンプトの入力以外の情報からわかるようであれば、その条件を付け加えればいいと思います。

GOGO1984
質問者

補足

回答有難うございます。 ですが、すみません書き忘れました。 すでに存在するシェルは、編集できません。 このシェルは、あるDBのパッチ適用シェルで、編集するとサポートが受けられなくなるからです。

関連するQ&A