【发布时间】:2015-02-11 05:10:29
【问题描述】:
我有一个 txt 文件,格式如下:
name1 path/to/some/directory
name2 path/to/some/other/directory
name3 path/to/some/directory
name4 path/to/some/other/directory
...
这是我为逐行读取此文件而编写的代码:
NUM=1
for line in $(cat /path/to/my/file.txt); do
if [ $((NUM%2)) -eq 1 ]
then
name= $line #this line does not work
echo $line #while this line works just fine
else
sudo tar -cf /desired/path/$name.tar $line
fi
NUM=$((NUM+1))
done
这段代码实际上是逐字读取文件,它在if语句的then和else之间交替。一旦它为变量名(then 部分在 if 中)分配了一个已读取的值,然后它会在 else中执行的命令中使用该变量> 如果的一部分。 (这就是我希望它工作的方式。)
出现的问题是 if 的 then 部分中的变量赋值似乎不起作用,它看到它刚刚作为命令读取的单词,并且没有赋值其值为变量。我试图回应它,它工作得很好。
为什么name= $line 变量赋值不起作用?
感谢您的任何建议、cmets 或答案。
【问题讨论】: