我写了一个 bash 脚本,假设创建一些文件并写入它们。无论如何,脚本的作用并不重要,问题是 - 代码中有一条注释(最后),它假设只打印一些内容到屏幕上。如果我尝试像那样运行它 - 程序不会在文件中写入输出,但如果将此行不作为注释(即删除 '##' )然后它可以工作 - 程序将输出写入文件。我真的试过了,但我不明白发生了什么......如果你需要脚本的其余部分,或者更多关于它所说的内容的解释。
files=( `ls $artists` )
echo artists=%${files[*]}%
for file in ${files[*]}; do
echo file= $file:
lines=`wc -l $artists/$file | cut -d" " -f1`
echo lines=$lines
counter=0
while read -a line; do
if (( $counter==$lines ));then
break;
fi
if [[ ! $line =~ [^[:space:]] ]] ; then
continue
fi
rank=$(( ${line[3]}+$(( 5*${line[4]} )) ))
echo ${line[*]}
echo rank = $rank
echo "${line[*]} $rank" >> $artists/$file
let counter++
done < $artists/$file
##cat $artists/$file | tail -$lines
cat $artists/$file | tail -$lines > $artists/$file
done