【发布时间】:2020-07-15 17:26:18
【问题描述】:
所以这是我在使用代码时遇到的问题:
for i in filename.txt
do
<operations>
done
正在对文件内容和文件名本身进行操作,为什么会发生这种情况?
为了清楚起见,我已经有 2 个解决方案可以解决这个问题,但我仍然不明白为什么会发生这种情况。 对我有用的解决方案之一:
for i in $(cat filename.txt)
do
tar -czf ${i}.tar $i
rm -R $i
gzip $i.tar
done
【问题讨论】:
-
在
for i in filename.txt中,您将拥有一个$i,它将被设置为filename.txt。你到底在问什么? -
我想你想逐行读取文件?
-
那你应该这样做:
while read -r line; do ...operations using $line... ; ...etc...; done < file.txt -
您需要minimal reproducible example。不要只是用
<operations>把循环体放在一边。提供一个再现您所看到问题的实际正文。