繁体   English   中英

Bash字符串插值wget

[英]Bash String Interpolation wget

我正在尝试使用wget下载文件,由于某种原因,我认为我在字符串插值方面遇到了一些问题。 我有要成功解析的要下载文件的列表(对我来说不是一件容易的事),并希望将这些文件合并到for loop wget语句组合中,该组合可以批量下载这些文件。

请原谅我,您的网址无法使用,因为密码和数据已更改。

我已经尝试过使用单引号和双引号以及在URL中转义几个字符(我猜想是&s和@s才是问题的关键)。

   list of files

   files.txt

   /results/KIDFROST@LARAZA.com--B627-.txt.gz      
   /results/KIDFROST@LARAZA.com--B626-part002.csv.gz   
   /results/KIDFROST@LARAZA.com--B62-part001.csv.gz

wget语句作为单个命令工作

   wget -O files/$i "https://tickhistory.com/HttpPull/Download?           user=KIDFROST@LARAZA.com&pass=RICOSUAVE&file=/results/KIDFROST@LARAZA.com--N6265-.txt.gz"

但是循环不起作用

   for i in `cat files.txt`; do  
       wget -O files/$i "https://tickhistory.com/HttpPull/Download?  user=KIDFROST@LARAZA.com&pass=RICOSUAVE&file=$i"
   done

编辑 :主要问题是“ files/$i"而不是"files$i" (请参阅注释)

不要使用for循环/ cat读取文件,而使用while / read循环。 缓冲区溢出/拆分/等问题更少

while read -r i; do
  wget -O "files$i" "https://tickhistory.com/HttpPull/Download?  user=KIDFROST@LARAZA.com&pass=RICOSUAVE&file=$i"
done < files.txt

还要确保引用变量以防止扩展/拆分错误。 同样也不太确定为什么要执行files/$i ,因为$i具有完整路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM