0

如何切换到目录A,wget在目录A中运行,然后切换到另一个目录B,wget在目录B中运行?

我有以下代码:

#!/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 回到您所在的位置是一个坏主意。相反,只需在子 shell 中运行:

#!/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 回答