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