當前位置:
首頁 > 最新 > Node在shell中執行命令

Node在shell中執行命令

Shell編程是一種構建工具類腳本和命令行程序的最常見的方式。你或許已經用過類似的腳本語言,如Bash或者Python腳本,Node本身也是使用JavaScript的一種腳本編程語言。儘管你可以使用execFile和spawn手動執行一個子命令,但Node還是為你提供了一種更加方便的、跨平台的方式。想通過一些系統已有的基礎命令(如管道、重定向、大對象文件相關的命令)得到相應的結果?通過使用exec來解決見下圖

如果需要在命令解析器里執行命令,你可以選擇使用exec。exec方法實際上也是調用/bin/sh(在Unix/Linux下)或者cmd.exe(在Windows下)來執行命令的。當然,這種方法可行的前提是,你必須擁有其他需要被執行的命令的許可權。

與execFile和spawn不一樣,exec方法沒有一個專門的參數來設置命令名稱,因為它可以在命令解析器上一次執行多個命令。通過管道的方式串起來,以生成一個排過序的沒有重複名字的內容。但是,這次我們要用的是Unix自身的管道機制,而不是使用流的方式。

cp.exec("cat messy.txt | sort | uniq",

function (err, stdout, stderr) {

console.log(stdout);

});

就像我們在命令行中一樣,使用管道把cat,sort,uniq命令串連在一起;如果成功的話,輸出會包括排序好且不重複的messy.txt版本。

如果你是Unix用戶,那麼時刻要注意一點,Node始終是使用/bin/sh來執行命令的,在現代操作系統中通常是使用Bash命令解析器,當然也可以選擇其他你喜歡的命令解析器。對於Windows用戶,你可以使用管道的功能,具體使用技巧57里討論的spawn以流的方式來實現。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 行家匯 的精彩文章:

Node的流和外部應用程序
Node執行外部程序時候出現的異常
Node中的UDP客戶端服務應用
Node通過UDP傳輸文件
Node創建TCP服務端和客戶端的方法

TAG:行家匯 |

您可能感興趣

RPM命令的——nodeps 和——force參數解釋
NodePort,LoadBalancer還是Ingress?我該如何選擇
詳解node + mongoDb(mongoDb安裝、運行,在node中連接增刪改查)
DOM探索之-DOM的nodeType、nodeName、nodeValue
nodejs+mongodb 編寫 restful 風格博客 api
blogfoster-scripts:一款簡化 Node.js 項目初始化的工具
川崎病:小兒皮膚黏膜淋巴結綜合征(mucocutaneous lymph node syndrome,MCLS)
node整合webstorm
Shader Graph著色器視圖自定義節點API:Code Function Node
node+pm2+express+mysql+sequelize來搭建網站和寫介面
NodeJS反序列化漏洞利用getshell
nodejs連接mongodb,對數據增刪改查操作(跳過坑)Windows版
Diss掉FileCoin,Hero Node 致力於成為 IPFS 生態的頭號玩家
node+express+mongoDB寫簡單介面,Vue獲取介面
Google發布Knative,IBM發布雲原生Node.js應用的資源
Node.js之express框架
大規模集群下的Hadoop NameNode
徹底理解 Node.js 中的回調(Callback)函數
在node上奔跑的mysql
基於 node.js 的自動路由組件-HttpPostman