wget和更改bash脚本中的目录

时间:2012-10-03 21:10:30

标签: bash wget

如何更改目录A,在目录A中运行wget,然后切换到另一个目录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替换为其他命令,例如touchpwd,则脚本将按预期工作。

感谢。

3 个答案:

答案 0 :(得分:6)

一般来说,尝试跟踪目录并回到你所在的位置是一个坏主意。相反,只需在子shell中运行:

#!/bin/sh

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

第一个wget将从directory_A中运行,无论发生什么,脚本都将保留在当前目录中,以便directory_B的相对路径正确。

答案 1 :(得分: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问题,则应提供一些错误消息。

答案 2 :(得分:0)

如果您修改代码如下:

#!/bin/bash

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

在第一个wget ..命令失败后它不会停止