プロが教えるわが家の防犯対策術!

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

A 回答 (4件)

ANo.3のコードが間違えていましたので訂正します。


すみませんでした。

#!/bin/sh

./prog

if [ $? -eq 1 ]
then
cp /home/bin/prog.org ./prog
./prog
fi
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/05/18 01:14

素直に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 …
    • good
    • 0

execすれば良いと思います。



prog1:
#!/bin/sh
echo "$0"
exec prog1
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/05/18 01:16

仰っている意味がよく分からないですが、こういうことですか?



#!/bin/sh
./program.sh
./program.sh


それとも無限ループということでしょうか。

#!/bin/sh
while(true)
do
./program.sh
done
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

説明不足ですみませんでした。

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

お礼日時:2011/05/17 00:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!