我们经常遇到这样的个极业务场景,我们开发了一个线上工具,令用量执需要在Linux操作系统下面执行处理某些事情,起批例如我们开发了一个将用户某个活动数据清0的行工心工具,命令如下:./clearTools -v 12306,个极意思是将用户id为12306的使用次数清零。 这里有些同学可能会问,令用量执为什么我们需要开发工具,起批而不是行工心直接从数据库中将次数清0,这是个极因为在生产环境中,任何一项业务都可能耦合众多业务逻辑,令用量执不是起批简单处理一张表就行,所以我们常常需要开发工具。行工心 有一天,个极因为一些不知名的令用量执原因,反正肯定不是起批代码的bug,产品给了一批用户的id,需要我们将他们的参与次数重置,可是我们原来的工具只是处理单个用户的云服务器,如何快速地将工具改成可以批量执行多个用户呢? 方法一 我们可以修改工具的代码,让其读入一个文件,然后再依次执行,把原有的单个工具改成批量工具。这个方法虽然很好,但是难免显得有些太笨,作为一个极客程序员,这是难以接受的。 方法二 我们写一个shell脚本,在脚本里面读入文件,然后依次执行。这种方法虽然不用修改代码,但是也要写新的代码,虽然比上述方法更加可用,但是还是不够极客。 方法三 使用Linux的xargs命令,xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的源码库一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。 上述的例子,我们只要这么做,cat list.txt | xargs -I { } ./clearTools -v { } 即可。在这个命令中,对于输出的每一行,都会匹配-I参数后面的花括号,然后将其替换成读入的文件行。 总结 是不是非常的简单,我们只要一行简单的命令行,就可以轻松的把单个工具修改变成批量执行的工具,大大提高了生产效率。怎么样,学会了么?欢迎关注我,我们一起学习共同进步。大家的支持是我继续唠嗑的动力。亿华云