2017-06-20 69 views
4

我需要使用執行一組Cassandra DB命令的nodeJS運行一個shell腳本文件。任何人都可以幫我在這裏如何使用nodejs運行shell腳本文件?

裏面的db.sh文件。

create keyspace dummy with replication = {'class':'SimpleStrategy','replication_factor':3} 

create table dummy (userhandle text, email text primary key , name text,profilepic) 
+1

歡迎來到SO !.在發佈問題之前請閱讀以下文章: https://stackoverflow.com/help/how-to-ask – garfbradaz

回答

6

您可以使用此模塊https://www.npmjs.com/package/shelljs執行任何shell命令。

const shell = require('shelljs'); 
//shell.exec(comandToExecute, {silent:true}).stdout; 
//you need little improvisation 
shell.exec('./path_to_ur_file') 
+0

這不符合目的。我需要運行本地系統中存在的腳本文件。該模塊用於執行命令。您能否告訴我們如何運行一個shell腳本文件。 –

+1

仔細查看答案。這是一個如何執行shell腳本文件的例子 –

15

您可以使用nodejs的「子進程」模塊在nodejs中執行任何shell命令或腳本。讓我用一個示例向您展示,我正在nodejs中運行一個shell腳本(hi.sh)。

hi.sh

echo "Hi There!" 

node_program.js

const exec = require('child_process').exec; 
var yourscript = exec('sh hi.sh', 
     (error, stdout, stderr) => { 
      console.log(`${stdout}`); 
      console.log(`${stderr}`); 
      if (error !== null) { 
       console.log(`exec error: ${error}`); 
      } 
     }); 

在這裏,當我運行該文件的NodeJS,它將執行shell文件,輸出會是:

運行

node node_program.js 

輸出

Hi There! 

您可以只用在exec回調提的shell命令或shell腳本執行任何腳本。

希望這會有所幫助!快樂編碼:)