• ベストアンサー

シェルスクリプト(Linux)【初心者です】

作成プログラムを実行させ、終了後、プログラムを再起動するシェルスクリプトを作成したいのですが、よくわかりません。

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

  • ベストアンサー
  • shiren2
  • ベストアンサー率47% (139/295)
回答No.4

ANo.3のコードが間違えていましたので訂正します。 すみませんでした。 #!/bin/sh ./prog if [ $? -eq 1 ] then cp /home/bin/prog.org ./prog ./prog fi

tkyas
質問者

お礼

訂正の回答まで頂きありがとうございました。 回答して頂いたものを参考にして、なんとか動作するものができました。 どうも、ありがとうございました。

その他の回答 (3)

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.3

素直にif文でいいと思います。 無限ループにしたければwhileを使ってください。 シェルスクリプトは資料が豊富ですから、少し調べればいくらでも資料が見つかりますよ。 #!/bin/sh ./prog if [ $? -eq 0 ] then cp /home/bin/prog.org ./prog ./prog.org fi

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08b.html
回答No.2

execすれば良いと思います。 prog1: #!/bin/sh echo "$0" exec prog1

tkyas
質問者

お礼

ご回答ありがとうございました。 回答して頂いたものを参考にして、なんとか動作するものができました。 どうも、ありがとうございました。

  • shiren2
  • ベストアンサー率47% (139/295)
回答No.1

仰っている意味がよく分からないですが、こういうことですか? #!/bin/sh ./program.sh ./program.sh それとも無限ループということでしょうか。 #!/bin/sh while(true) do ./program.sh done

tkyas
質問者

お礼

ご回答ありがとうございました。 説明不足ですみませんでした。 詳細を述べますと、「プログラム(prog)の戻り値をみて1の場合のみ再起動させるループにしたい」 また、これは追加処理になるのですが 「再起動の前に、あるディレクトリ(/home/bin/)からプログラム(prog.org)をprogにコピー してから実行するようにしたい」 (prog.orgは任意タイミングで更新されます) のですが、これらの意味はわかりますでしょうか? もしわかるようであれば、どのようにすればよいか教えて頂けると助かります。

関連するQ&A