web-dev-qa-db-ja.com

シェルスクリプトの次の行に進む前に、プロセスが完了するのを待ちます

バックアップを作成するために作成したスクリプトがあります。 /home/ftp.shコマンドを実行する前に、バックアップの準備ができていることを確認する必要があります。どうすればできますか? CentOS 5.6を使用しています

#!/bin/bash
tar -Pcf /home/temp_backup.tar /home/myfiles/
wait %%
/home/ftp.sh
6
Hujeplet

あなたはすでにそれをやっています。

コマンドが完了するのを待つのはシェルの通常の動作です。 (シェルプロンプトでsleep 5と入力してみてください。)しないが発生するのは、コマンドに&を追加するとき、またはコマンド自体が何かを実行するときだけですそれ自体を効果的にバックグラウンドで処理します(後者は少し単純化しすぎています)。

スクリプトからwait %%コマンドを削除できます。おそらくwait: %%: no such jobのようなエラーメッセージが表示されるだけです。 (質問:実際にそのようなメッセージを出力しますか?)

tarコマンドされない/home/ftp.shコマンドの開始前に完了している証拠はありますか?

ちなみに、/homeの直下にユーザーのホームディレクトリ以外のものを置くのは少し奇妙です。

(私はこれのほとんどがすでにコメントでカバーされていることを知っていますが、実際の答えがあるはずだと思いました。)

9
Keith Thompson