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

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


收到一只叮咚
浏览 790回答 1
1回答

GCT1015

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