成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

當Shell遇上了Node.js

開發 前端
首先,我承認Shell腳本配置sed,awk等工作已經相當強大了,熟悉的朋友就對下面的內容一笑而過吧,但是如果你喜歡上了NODE,那就讓我們繼續旅程吧

好吧,我承認,這個標題有點曖昧的基情,但是希望下文的內部能給不熟悉或不喜歡Shell或WIN平臺下的批處理編寫的工程師帶來一些幫助。

51CTO推薦專題:Node.js專區

首先,我承認Shell腳本配置sed,awk等工作已經相當強大了,熟悉的朋友就對下面的內容一笑而過吧,但是如果你喜歡上了NODE,那就讓我們繼續旅程吧:

好吧,先做一段簡單的Shell得到時間差代碼的冷菜diff.sh:

  1. #!/bin/bashSTART=$(date +%s)  
  2. # 洗菜之類的事先準備吧  
  3. du -m /home > /tmp/output  
  4. # 吃完了  
  5. END=$(date +%s)  
  6. DIFF=$(( $END - $START ))  
  7. echo "化了$DIFF 秒搞定"   
  8.  
  9. chmod +x diff.sh  
  10. sh diff.sh 

執行結果如下:

化了0 秒搞定

~o,能吃這么塊嗎,難道BUG了吧,好吧,是速度太快了,只是腳本中采用的是秒數級別的范圍,估計只能用納秒也進行,并在Shell做除法運算。好吧,再采用NODE試一把看看vim diff.js:

  1. #!/usr/bin/env node  
  2. var util  = require('util'),  
  3.     spawn = require('child_process').spawn,  
  4.     ls    = spawn('du', ['-m','/home/']);  
  5. var start = +new Date();  
  6. ls.stdout.on('data', function (data) {  
  7. //console.log('stdout: ' + data);  
  8. });  
  9.  
  10. ls.stderr.on('data', function (data) {  
  11.   console.log('stderr: ' + data);  
  12. });  
  13.  
  14. ls.on('exit', function (code) {  
  15.   var end = + new Date();  
  16.   console.log(end-start);  
  17. }); 

執行一下./diff.js:

1113

時間直接顯示是毫秒級別,是不是感覺更舒服些,好吧,我承認做這樣的比較,并不是說要一決高低,只是用前端攻城師喜歡的方式工具去做菜,依賴于Shell的強大功能基礎之上,當然喜歡不同的語言的攻城師也可以用Python,Ruby之類的語言去實現。

好的,如果你覺得有趣,那就接著跟著我向前,否則就直接拍磚吧,哈哈。

以上示例可以看到,借用Shell腳本,NodeJs內置功能做一些常用的小菜是很方便的而且很靈活,Shell腳本功能的強大之為就是流的重定向處理等,是不是需要采用寫成腳本或直接如果采用一采超復雜的命令來搞定,呵呵,對我們之為的非系統管理員可能有一定的難度,好,那就拿出強大點的菜刀procstreams,看看它是怎么做菜的吧:

  1. #!/usr/bin/env node  
  2. var p = require('procstreams');  
  3. p('cat app.log').pipe('wc -l')  
  4.   .data(function(stdout, stderr) {  
  5.       console.log(stdout);  
  6.   }); 

上面的JS代碼是實現統計app.log的行數,相當于Shell的cat app.log | wc -l功能,感覺怎樣,如果要實現復雜或交互的功能,會不會更靈活些呢。再上一菜

  1. #!/usr/bin/env node  
  2. var p = require('procstreams');  
  3.     p('mkdir foo')  
  4.        .and('rm file.txt')  
  5.           .on('exit', function() {    
  6.                 console.log('done');    
  7.            }); 

是不是很熟悉的感覺? 如果執行腳本的時還需要處理復雜一些的參數對應的問題,怎么辦?沒關系,node-optimist 及 isaacs's nopt 之類的工作早就等著你們這類的攻城師呢? 再上最后一道菜:

  1. #!/usr/bin/env node  
  2. var util  = require('util'),  
  3.   spawn = require('child_process').spawn;  
  4. var argv = require('optimist').argv;  
  5. var cmd =  argv.cmd;  
  6. var args = argv.args  
  7. var option = argv.opt  
  8. console.log(cmd + '  ' + args + '  ' + option);  
  9. var ls    = spawn(cmd , [args ,option]);  
  10. ls.stdout.on('data', function (data) {  
  11.   if (!data || !!data)  console.log(' i believe it');  
  12. });  
  13.  
  14. ls.stderr.on('data', function (data) {  
  15.   console.log('It\'s a miracle!');  
  16. });  
  17.  
  18. ls.on('exit', function (code) {  
  19.    console.log('it.justHappened();');  
  20. }); 

~親,謝謝你,一直走到了最后,以上只是個人在工作寫有些寫Shell腳本時常因為一個空格或格式之類的情況查找半天而抓狂不已,以后采用和NODEJS結合會不會更淡定些,請各各抒己見,歡迎拍磚吧。

 

原文:http://club.cnodejs.org/topic/4f2a2f80aa8e490b1106909b

【編輯推薦】

  1. 走近Node.js的異步代碼設計
  2. Node.js的循環依賴
  3. 用Eclipse調試Node.js代碼
  4. Node.js后端框架設計構想
  5. 用Web socket和Node.js實現HTML 5畫布的實時繪圖

 

 

 

責任編輯:陳貽新 來源: Node Club
相關推薦

2020-03-05 16:35:06

人臉識別口罩人工智能

2019-03-14 11:00:40

GoLua語言

2021-05-31 20:48:45

人工智能AI無人機

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹

2011-11-10 08:55:00

Node.js

2012-10-24 14:56:30

IBMdw

2011-09-08 13:46:14

node.js

2011-11-01 10:30:36

Node.js

2011-09-02 14:47:48

Node

2011-09-09 14:23:13

Node.js

2021-12-25 22:29:57

Node.js 微任務處理事件循環

2017-11-01 14:09:30

大數據心理學新零售

2020-10-26 08:34:13

Node.jsCORS前端

2021-04-06 10:15:29

Node.jsHooks前端

2024-07-08 08:53:52

2021-02-01 15:42:45

Node.jsSQL應用程序

2015-06-23 15:27:53

HproseNode.js

2012-02-03 09:25:39

Node.js

2020-05-29 15:33:28

Node.js框架JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91色视频在线观看 | avhd101在线成人播放 | 日韩精品在线播放 | 国产日韩一区二区三免费高清 | 色婷婷av一区二区三区软件 | 爱爱无遮挡 | 91久久久久久久久久久久久 | 黄色电影在线免费观看 | 日本高清在线一区 | 欧美日韩国产一区二区 | 精一区二区 | 成人不卡一区二区 | 福利网址 | 欧美一页 | 亚洲欧美国产毛片在线 | 中文字幕爱爱视频 | 精品日韩一区 | 欧美黑人又粗大 | 亚洲va中文字幕 | 在线视频 欧美日韩 | 亚州毛片 | 精品免费视频一区二区 | 91久久久久久久久久久久久 | 欧美视频精品 | 日本亚洲欧美 | 91精品国产色综合久久 | 精品中文字幕一区二区 | 日日夜夜天天 | 毛片一级电影 | 精品久久久久久久久久久久久久久久久 | 久久久久免费精品国产小说色大师 | 欧美日韩在线成人 | 欧美精品一区二区三区在线播放 | 91在线视频精品 | 亚洲最大成人综合 | 综合一区 | 一区二区三区成人 | 狠狠操操 | 毛片大全 | 亚洲天堂二区 | 日本福利在线观看 |