如何更改目录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替换为其他命令,例如touch
或pwd
,则脚本将按预期工作。
感谢。
答案 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 ..
命令失败后它不会停止