Wget Bash 脚本文件未找到

Wget Bash 脚本文件未找到

我有以下脚本:

for i in {1..16}; do
$wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/
done

将文件保存为 test.sh 并在 Windows 上的 Git 中运行它。

这些文件在服务器上是活动的,但是当我运行脚本时,出现“没有这样的文件或目录”...

有什么想法吗?

答案1

如果不是因为您必须删除的字符$和您必须重复的文件名,您的脚本基本上是正确的

for i in {1..16}; do
   wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/$i.jpg
done

实际上,该选项-O要求写入文件名而不是目录。

-O file
--output-document=file
文档将不会写入适当的文件,而是所有文档将连接在一起并写入文件。

多说几句
在您的版本中$wget,变量从未被分配,因此为空。
循环内的命令结果变为,例如,

http://url/1.jpg -O C:/Users/User/Desktop/Test/

该文件不存在于您的硬盘上。

要调查此类错误,您可以echo在行中添加并查看循环生成的输出:

for i in {1..16}; do
   echo $wget http://url/$i.jpg -O C:/Users/User/Desktop/Test/
done

它会揭示你的问题/错误。

答案2

我的 -P 目录尚未创建,因此 wget 没有地方下载文件。

需要将 -O 更改为 -P。为目录位置添加了“”。

现在正在工作

 for i in {1..16}; do
 wget http://url/$i.jpg -P "C:/Users/user/Desktop/Test"
 done

还需要确保 Notepad++ 中的格式正确。将 EOL 转换从 Windows 更改为 Unix。

相关内容