新聞中心
我們經(jīng)常遇到這樣的業(yè)務(wù)場(chǎng)景,我們開發(fā)了一個(gè)線上工具,需要在Linux操作系統(tǒng)下面執(zhí)行處理某些事情,例如我們開發(fā)了一個(gè)將用戶某個(gè)活動(dòng)數(shù)據(jù)清0的工具,命令如下:./clearTools -v 12306,意思是將用戶id為12306的使用次數(shù)清零。

創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷型網(wǎng)站制作、自適應(yīng)網(wǎng)站建設(shè)、展示型成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷推廣問題。
這里有些同學(xué)可能會(huì)問,為什么我們需要開發(fā)工具,而不是直接從數(shù)據(jù)庫(kù)中將次數(shù)清0,這是因?yàn)樵谏a(chǎn)環(huán)境中,任何一項(xiàng)業(yè)務(wù)都可能耦合眾多業(yè)務(wù)邏輯,不是簡(jiǎn)單處理一張表就行,所以我們常常需要開發(fā)工具。
有一天,因?yàn)橐恍┎恢脑?,反正肯定不是代碼的bug,產(chǎn)品給了一批用戶的id,需要我們將他們的參與次數(shù)重置,可是我們?cè)瓉淼墓ぞ咧皇翘幚韱蝹€(gè)用戶的,如何快速地將工具改成可以批量執(zhí)行多個(gè)用戶呢?
方法一
我們可以修改工具的代碼,讓其讀入一個(gè)文件,然后再依次執(zhí)行,把原有的單個(gè)工具改成批量工具。這個(gè)方法雖然很好,但是難免顯得有些太笨,作為一個(gè)極客程序員,這是難以接受的。
方法二
我們寫一個(gè)shell腳本,在腳本里面讀入文件,然后依次執(zhí)行。這種方法雖然不用修改代碼,但是也要寫新的代碼,雖然比上述方法更加可用,但是還是不夠極客。
方法三
使用Linux的xargs命令,xargs命令是給其他命令傳遞參數(shù)的一個(gè)過濾器,也是組合多個(gè)命令的一個(gè)工具。它擅長(zhǎng)將標(biāo)準(zhǔn)輸入數(shù)據(jù)轉(zhuǎn)換成命令行參數(shù),xargs能夠處理管道或者stdin并將其轉(zhuǎn)換成特定命令的命令參數(shù)。
上述的例子,我們只要這么做,cat list.txt | xargs -I {} ./clearTools -v {} 即可。在這個(gè)命令中,對(duì)于輸出的每一行,都會(huì)匹配-I參數(shù)后面的花括號(hào),然后將其替換成讀入的文件行。
總結(jié)
是不是非常的簡(jiǎn)單,我們只要一行簡(jiǎn)單的命令行,就可以輕松的把單個(gè)工具修改變成批量執(zhí)行的工具,大大提高了生產(chǎn)效率。怎么樣,學(xué)會(huì)了么?歡迎關(guān)注我,我們一起學(xué)習(xí)共同進(jìn)步。大家的支持是我繼續(xù)嘮嗑的動(dòng)力。
分享標(biāo)題:這個(gè)極客的Linux命令用起來,批量執(zhí)行工具得心應(yīng)手
文章位置:http://m.fisionsoft.com.cn/article/cdejeed.html


咨詢
建站咨詢
