为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2019-01-01 09:00:33
linux shell:这里的%% * 是什么意思?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

${LINE%% *}的意思就是从LINE这个变量的值中,从后面开始以最长匹配删去%%后面的表达式内容。

从你的shell看,wc -l的结果是行数+空格+文件名,你的匹配项是'空格*',那么从后面开始的最长匹配就是行数后面的所有内容,也就是说,这个表达式最终的结果是产生命令行参数所带文件的行数。

看一下man bash可以找到详细说明,查找Parameter Expansion这段会看到:

${parameter%word}
${parameter%%word}

都是从parameter的最后开始删除word所匹配的内容,%是最短匹配,%%是最长匹配。

查看完整回答
反对 回复 2019-01-05
  • 1 回答
  • 0 关注
  • 762 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信