0

wgetディレクトリ A に移動し、ディレクトリ A で実行してから、別のディレクトリ B に移動して、ディレクトリ B で実行するにはどうすればよいwgetですか?

次のコードがあります。

#!/bin/bash

cd directory_A && wget --spider -i addresses.txt && cd ..;
cd directory_B && wget --spider -i addresses.txt && cd ..;

私のコードは、最初の の最後で失敗していwgetます。ただし、 wget をtouchor などの他のコマンドに置き換えるとpwd、スクリプトは意図したとおりに機能します。

ありがとう。

4

3 に答える 3

6

一般に、ディレクトリを追跡して cd でどこにでも戻ろうとするのは悪い考えです。代わりに、サブシェルで実行してください:

#!/bin/sh

( cd directory_A && wget ... )
( cd directory_B && wget ... )

最初の wget は directory_A 内から実行され、何が起こってもスクリプトは現在のディレクトリに残るため、directory_B の相対パスは正しくなります。

于 2012-10-03T21:14:07.307 に答える
0
a && b

意味: a が正常に完了した場合にのみ b を実行します。そのため、wget失敗した場合cd ..は実行されません。

多分あなたはこれをしたいですか?

 cd directory_A; wget --spider -i addresses.txt; cd ..;
 cd directory_B; wget --spider -i addresses.txt; cd ..;

私たちに問題を解決してほしい場合wgetは、いくつかのエラー メッセージを提供してください。

于 2012-10-03T21:14:38.287 に答える
0

次のようにコードを変更した場合:

#!/bin/bash

cd directory_A && wget --spider -i addresses.txt
cd ..
cd directory_B && wget --spider -i addresses.txt
cd ..

wget ..最初のコマンドが失敗した後、停止しません

于 2012-10-03T21:15:08.543 に答える