${LINE%% *}的意思就是从LINE这个变量的值中,从后面开始以最长匹配删去%%后面的表达式内容。 从你的shell看,wc -l的结果是行数+空格+文件名,你的匹配项是'空格*',那么从后面开始的最长匹配就是行数后面的所有内容,也就是说,这个表达式最终的结果是产生命令行参数所带文件的行数。 看一下man bash可以找到详细说明,查找Parameter Expansion这段会看到: ${parameter%word} ${parameter%%word} 都是从parameter的最后开始删除word所匹配的内容,%是最短匹配,%%是最长匹配。
grep 中option选项
-c 输出匹配行的数目,而不是输出的匹配的行
-E 启用扩展表达式
-h 取消每个输出行的普通前缀,即匹配查询模式的文件名
-i 忽略大小写
-l 只列出包含匹配行的文件名,而不输出真正的匹配行
-v 对匹配模式取反,即搜索不匹配行而不是匹配行
trap 命令有两个参数,第一个参数是接受到指定信号时将要采取的行动,第二个参数是要处理的信号名
trap command signal
$(wc -l $temp_file)标记从wc命令的输出结果中提取出第一个参数,并复制给变量linesfound。
阅读(719) | 评论(0) | 转发(0) |