Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用wget使用bash脚本下载文件_Bash_Loops_Wget_Cat - Fatal编程技术网

使用wget使用bash脚本下载文件

使用wget使用bash脚本下载文件,bash,loops,wget,cat,Bash,Loops,Wget,Cat,我一直在尝试创建一个简单的脚本,它将从一个.txt文件中获取要下载的文件列表,然后使用一个循环,它将在另一个单独的.txt文件的帮助下读取.txt需要下载的文件,该文件位于下载文件的地址中。但我的问题是我不知道怎么做。我试了很多次,但总是失败 file.txt 1.jpg 2.jpg 3.jpg 4.mp3 5.mp4 ===================================== url.txt url = https://google.com.ph/ download.sh

我一直在尝试创建一个简单的脚本,它将从一个.txt文件中获取要下载的文件列表,然后使用一个循环,它将在另一个单独的.txt文件的帮助下读取.txt需要下载的文件,该文件位于下载文件的地址中。但我的问题是我不知道怎么做。我试了很多次,但总是失败

file.txt
1.jpg
2.jpg
3.jpg
4.mp3
5.mp4
=====================================

url.txt
url = https://google.com.ph/
download.sh
#!/bin/sh
url=$(awk -F = '{print $2}' url.txt)
for i in $(cat file.txt);
do 
wget $url
done
=====================================

url.txt
url = https://google.com.ph/
download.sh
#!/bin/sh
url=$(awk -F = '{print $2}' url.txt)
for i in $(cat file.txt);
do 
wget $url
done
非常感谢你的帮助

而不是

wget $url
试一试


除了他在回答中指出的明显问题外,你可以避免:

  • 使用
    awk
    解析url.txt文件
  • 使用$(cat file.txt)的
    来迭代file.txt文件
    
以下是您可以做的:

#!/bin/bash

# Create an array files that contains list of filenames
files=($(< file.txt))

# Read through the url.txt file and execute wget command for every filename
while IFS='=| ' read -r param uri; do 
    for file in "${files[@]}"; do 
        wget "${uri}${file}"
    done
done < url.txt
#/bin/bash
#创建包含文件名列表的阵列文件
文件=($(
切勿对$中的var使用
(命令)
。请参阅以下答案:。否则,在这种情况下,您可以使用
cut
而不是
awk
。我有一个问题,如果地址栏位于第二列和第二行,我应该如何处理URL文件?我指的是awk指挥部。。