Bash 使用“然后传递到删除”调用将文件读入变量

Bash 使用“然后传递到删除”调用将文件读入变量,bash,Bash,我正在尝试使用bash将列表中的所有文件读入一个变量行。在变量中读入数据后,它们被传递给delete调用。文件似乎是逐行读取的(我可以通过echo)到变量中,但是delete调用没有删除它们,我不知道为什么?谢谢:) 列表 overall.html file1.bam file2.bam file1.vcf.gz file2.vcf.gz Bash while read line; do echo $line done < /home/cmccabe/list wget --use

我正在尝试使用
bash
将列表中的所有文件读入一个变量
。在变量中读入数据后,它们被传递给delete调用。文件似乎是逐行读取的(我可以通过
echo
)到变量中,但是delete调用没有删除它们,我不知道为什么?谢谢:)

列表

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

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   
   wget --user=xxx --password=xxx --xxx --method=DELETE \
   xxxx://www.xxxx.com/xxx/xx/xxxx/$line
done < /home/cmccabe/list
读行时
;做
回音$线
wget--user=xxx--password=xxx--xxx--method=DELETE\
xxxx://www.xxxx.com/xxx/xx/xxxx/美元线
完成
循环内的
wget
。基本上,文件中的每个记录都被分配给变量
$line
,然后在下一个循环中被下一个记录覆盖,因此在被下一个记录覆盖之前,您必须执行
wget


此外,由于在子shell中处理
读取行
,因此
$line
变量在
while
循环完成后将为空。因此,在循环外运行
wget
将导致url结尾处缺少文件名。

您的
wget
应该在
while
循环内。@jnevil编辑
bash
正确吗?谢谢:)。
done
是正确的,您只需要在循环中移动
wget…
。其他一切都很好,谢谢你们,这个解释帮助我很好地学习和理解:)
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