我正在尝试使用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
答案 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
会导致最后会丢失文件名的网址。