2014-05-02 86 views
1

正在試圖執行多個終端通過節點腳本命令執行多個終端中的命令代碼的NodeJS

我有像smaple.sh一個外殼腳本,它工作正常

cd ~/Desktop 
find -type f -printf '%T+\t%p\n' | sort -n 

正在試圖執行上述節點腳本中的終端命令

 var command = ' cd ~/Desktop' 
     command +=' find -type f -printf %T+\\t%p\\n | sort -n' 

exec(command, function (error, stdout, stderr) { 

}); 

在執行上述代碼時什麼都沒有。 首先我需要改變的目錄,然後執行第二個命令

find -type f -printf %T+\\t%p\\n | sort -n 

回答

1

以您目前的代碼,Node.js的嘗試執行以下操作:

cd ~/Desktop find -type f -printf %T+\\t%p\\n | sort -n

,如果你嘗試運行的外的節點,你會得到相同的結果。

您需要使用任何&&;到deliminate的命令,就像這樣:

var command = ' cd ~/Desktop &&' 
command +=' find -type f -printf %T+\\t%p\\n | sort -n' 

exec(command, function (error, stdout, stderr) { 

}); 

一個或許更簡潔的方法:

var commands = []; 
commands.push('cd ~/Desktop'); 
commands.push('find -type f -printf %T+\\t%p\\n | sort -n'); 

var command = commands.join(' && '); 

exec(command, function (error, stdout, stderr) { 

}); 
+0

我得到'EXEC錯誤:錯誤:命令失敗:execvp ():沒有這樣的文件或目錄 '但我alrelay有這個直接 – Sush

+0

而在終端上執行ur代碼它工作正常但使用exec得到上述錯誤 – Sush