${LINE%% *}的意思就是从LINE这个变量的值中,从后面开始以最长匹配删去%%后面的表达式内容。
从你的shell看,wc -l的结果是行数+空格+文件名,你的匹配项是'空格*',那么从后面开始的最长匹配就是行数后面的所有内容,也就是说,这个表达式最终的结果是产生命令行参数所带文件的行数。
看一下man bash可以找到详细说明,查找Parameter Expansion这段会看到:
${parameter%word}
${parameter%%word}
都是从parameter的最后开始删除word所匹配的内容,%是最短匹配,%%是最长匹配。