- ベストアンサー
連続実行のためのシェル作成方法
- メッセージを求められるシェルを連続実行するための方法について
- 既に存在するシェルの確認メッセージで中断されずに連続実行する手段はあるか
- シェルに詳しい方への質問
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
yesコマンドも無いとは想像できなかった. OSぐらい書きましょう. でも,各スクリプトで,問い合わせが一回なら, echo y | foo001 で十分ですね.
その他の回答 (2)
- astronaut
- ベストアンサー率58% (303/516)
きちんと「シェルスクリプト」と表記する癖をつけましょう. 本題ですが,既存のシェルスクリプト名を foo001 として, yes | foo001 でいかが?
補足
回答有難うございます。 >きちんと「シェルスクリプト」と表記する癖をつけましょう. ご指摘ありがとうございます。以後、気をつけます。 実行したら、以下のとおりでした。 % yes | ファイル名 yes: コマンドが見つかりません。 ファイル名: コマンドが見つかりません。
- utf7
- ベストアンサー率29% (11/37)
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は実行しないということが、プロンプトの入力以外の情報からわかるようであれば、その条件を付け加えればいいと思います。
補足
回答有難うございます。 ですが、すみません書き忘れました。 すでに存在するシェルは、編集できません。 このシェルは、あるDBのパッチ適用シェルで、編集するとサポートが受けられなくなるからです。
お礼
ありがとうございます。 実行できました。 yesコマンドというのがあったのですね、 知りませんでした。