2012-05-08 16 views

答えて

17

シンプルです。あなたはあなたの仕事をスケジュールするために 'at'を使いたいと思っています。将来のあなたの瞬間を計算するために '日付'と '

例:

echo b.sh | at now + 1 minute 

か:

echo b.sh | at -t `date -v+60S "+%Y%m%d%H%M%S"` 

-v+60Sは、現在の時刻に60秒を追加します。追加する秒数を正確に制御することができます。

しかし、通常、1つのプログラムが1分後に1つのプログラムを起動することを望む場合、100分後に1分以上かかることはありません。それでおしまい。 a.shが完了する前にb.shを起動することができました。またはa.shは "計画済み"より30秒早く終了する可能性があり、b.shがより早く開始する可能性があります。

私は別のモデルをお勧めします。最初にb.shが起動されます。 a.shは、起動時に一時ファイルを作成します。タスクは実行され、最後に一時ファイルが削除されます。 b.sh一時ファイルが作成され、次に削除されるのを監視します。タスクを開始します。

+1

はい、ありがとうございます!それはまさに私が欲しいものです。しかし、おそらく少しの間違いがありますか? "日付が無効です--v" –

+3

@alexchan:異なるバージョンの 'date'は異なるオプションをサポートしています。試してみましょう: 'echo b.sh |今すぐ+ 1分 ' –

+0

b.shはビジュアルウィンドウで実行されますか?そしてどうやって? –

2

a.shの最終行してください:あなたはでき

sleep 60 && b.sh 

(b.shがPATH内のディレクトリにない場合は、フルパスをb.sh.することを確認)

3

をただsleep

a.sh 
sleep 60 
b.sh 

以上の複雑なケースのためにあなたがatコマンドを使用することができます。

0を

詳細については、atのマニュアルページを参照してください。

+0

私は後で試してみます –

+0

いいえ、それは期待どおりにb.shを実行しますBTW、10秒後にそれを実行する方法?分を2番目に変更しました。構文エラーです。 –

+0

@alexchan: 'at'は1分より細かい時間の増分を行いません。 –

0

このコマンドを使用して、スクリプトを1分間スリープ状態にすることができます。

その後
sleep 1m 

あなたは

bash a.sh 
1

atコマンドを使用して第二のスクリプトを呼び出したいです。

使用方法はman atを参照してください。

0

あなたが最初のスクリプトの開始後に第2のスクリプトを秒のいくつかの数を実行したい場合は、あなたが最初にこれを行うことができます:

秒で
b.sh & 

と、これを:

sleep 10 
# more commands 

第1から第2までの引数として秒数を渡すことができます。

残念ながら、atは1分より細かい時間増分を行いません。

0

両方のスクリプトを同時にcronで実行し、必要な遅延をb.shに設定します。

関連する問題