将文件读入变量然后传递给删除调用

时间:2016-02-11 16:30:28

标签: bash

我正在尝试使用line将列表中的所有文件读入变量bash。在读入变量后,它们将被传递给删除调用。这些文件似乎是读取行(我可以用echo看到它们)行变量,但删除调用不是删除它们,我不知道为什么?谢谢你:)。

列表

overall.html
file1.bam
file2.bam
file1.vcf.gz
file2.vcf.gz

while read line; do
   echo $line
done < /home/cmccabe/list
wget --user=xxx --password=xxx --xxx --method=DELETE \
xxxx://www.xxxx.com/xxx/xx/xxxx/$line

修改

while read line; do
   echo $line
   /home/cmccabe/list
   wget --user=xxx --password=xxx --xxx --method=DELETE \
   xxxx://www.xxxx.com/xxx/xx/xxxx/$line
done

1 个答案:

答案 0 :(得分:3)

只是将其拖出评论。你的脚本应该是:

while read line; do
   echo $line   
   wget --user=xxx --password=xxx --xxx --method=DELETE \
   xxxx://www.xxxx.com/xxx/xx/xxxx/$line
done < /home/cmccabe/list

循环中有wget。基本上,文件中的每个记录都分配给变量$line,然后在下一个被下一个记录覆盖的循环中,所以你必须先用wget覆盖它,然后才能覆盖下一个记录。下一条记录。

此外,由于在子shell中处理了read line,因此$line循环为while后,done变量将为空。因此,在循环外运行wget会导致最后会丢失文件名的网址。