- ベストアンサー
シェルスクリプト(Linux)【初心者です】
作成プログラムを実行させ、終了後、プログラムを再起動するシェルスクリプトを作成したいのですが、よくわかりません。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ANo.3のコードが間違えていましたので訂正します。 すみませんでした。 #!/bin/sh ./prog if [ $? -eq 1 ] then cp /home/bin/prog.org ./prog ./prog fi
その他の回答 (3)
- shiren2
- ベストアンサー率47% (139/295)
素直にif文でいいと思います。 無限ループにしたければwhileを使ってください。 シェルスクリプトは資料が豊富ですから、少し調べればいくらでも資料が見つかりますよ。 #!/bin/sh ./prog if [ $? -eq 0 ] then cp /home/bin/prog.org ./prog ./prog.org fi
- MillenniuM
- ベストアンサー率58% (42/72)
execすれば良いと思います。 prog1: #!/bin/sh echo "$0" exec prog1
お礼
ご回答ありがとうございました。 回答して頂いたものを参考にして、なんとか動作するものができました。 どうも、ありがとうございました。
- shiren2
- ベストアンサー率47% (139/295)
仰っている意味がよく分からないですが、こういうことですか? #!/bin/sh ./program.sh ./program.sh それとも無限ループということでしょうか。 #!/bin/sh while(true) do ./program.sh done
お礼
ご回答ありがとうございました。 説明不足ですみませんでした。 詳細を述べますと、「プログラム(prog)の戻り値をみて1の場合のみ再起動させるループにしたい」 また、これは追加処理になるのですが 「再起動の前に、あるディレクトリ(/home/bin/)からプログラム(prog.org)をprogにコピー してから実行するようにしたい」 (prog.orgは任意タイミングで更新されます) のですが、これらの意味はわかりますでしょうか? もしわかるようであれば、どのようにすればよいか教えて頂けると助かります。
お礼
訂正の回答まで頂きありがとうございました。 回答して頂いたものを参考にして、なんとか動作するものができました。 どうも、ありがとうございました。