我们经常会遇到这样的业务场景。我们开发了一个在线工具,需要在Linux操作系统下执行,来处理某些事情。比如我们开发了一个工具,可以将某个用户的活动数据清零,命令如下:./clearTools-v12306,意思是清除用户id12306的使用次数,这里有同学可能会问为什么我们需要开发工具而不是直接从数据库中清除次数。这是因为在生产环境中,任何业务都可能耦合很多业务逻辑,而不是简单的处理一张表,所以我们经常需要开发工具。有一天,由于一些不为人知的原因,无论如何它肯定不是代码中的错误。产品给出了一批userid,我们需要重新设置他们的参与次数。但是,我们的原始工具仅处理单个用户。如何快速更改工具以批量执行多个用户如何?方法一:我们可以修改工具读取一个文件的代码,然后顺序执行,把原来的单一工具变成了批处理工具。这种方法虽然很好,但难免显得有些过于愚蠢。作为极客程序员,这是不能接受的。方法二我们写一个shell脚本,读取脚本中的文件,然后依次执行。这种方法虽然不需要修改代码,但是也需要编写新的代码。虽然比上面的方法好用,但是对于极客来说还是不够用。方法三使用Linux的xargs命令。xargs命令是一个过滤器,用于将参数传递给其他命令,也是一个组合多个命令的工具。它擅长将标准输入数据转换为命令行参数,xargs可以处理管道或标准输入并将它们转换为特定命令的命令行参数。对于上面的例子,我们只需要这样做,catlist.txt|xargs-I{}./clearTools-v{}。在这个命令中,对于每一行输出,-I参数后面的花括号匹配并替换为读入文件的行。总结起来是不是很简单?我们只需要一个简单的命令行就可以很容易地将单个工具修改为批量执行工具,大大提高了生产效率。怎么样,学会了吗?欢迎关注我,一起学习,一起进步。您的支持是我继续聊天的动力。
