linux shell:这里的%% * 是什么意思?

如题所述

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