2016-11-13 58 views
1

我想寫一個.sh文件來運行多個JavaScript文件。如何使用節點一個接一個地運行多個JavaScript文件來編寫shell腳本?

我知道我需要以下幾行:

#!/usr/bin/env node 
chmod u+x ./a/file1.js ./a/file2.js 

是否正確放兩個.js文件一個接一個?我需要file1.js先執行然後file2.js,因爲file2.js中的某些函數需要從file1.js輸出的信息。

我對#!/ usr/bin/env節點和#!/ usr/bin/env bash之間的區別也有點困惑。我仍然可以用bash運行我的.js文件嗎?

回答

0

#!/usr/bin/env node將環境設置爲JavaScript環境Node.js。

例如,如果你創建一個簡單的腳本test.js具有以下內容:

#!/usr/bin/env node 

// now we're in JavaScript! 
var d = new Date(); 

console.log('Current Time: ' + d); 

然後你把它可執行:

$ chmod u+x test.js 

然後你可以在shell執行:

$ test.js 
Current Time: Sun Nov 13 2016 07:14:15 GMT+0000 (GMT) 

文件擴展名不重要:

$ mv test.js test.sh 
$ test.sh 
Current Time: Sun Nov 13 2016 07:15:05 GMT+0000 (GMT) 

如果您不想更改JavaScript文件以使它們成爲shell腳本,那麼您可以使用Node從shell腳本運行它們。

tasks.sh:

#!/bin/sh 
node ./a/file1.js 
node ./a/file2.js 

然後使其可執行文件並運行它!

$ chmod u+x tasks.sh 
$ tasks.sh 
+1

我想用盡可能少的工作來運行tasks.sh文件。 – CatherineAlv

+1

對不起,我提前回復了我的回覆。我可以在我的tasks.sh文件中包含chmod u + x,這樣我就不會將它包含在命令行中嗎? 另外,我可以這樣做:#!/ usr/bin/env打擊我的.sh文件的第一行並仍然運行節點? – CatherineAlv

+0

命令'chmod u + x'爲用戶(所有者)提供文件的可執行權限。你只需要做一次。 '#!/ usr/bin/env bash'作爲腳本文件的第一行指定腳本將使用bash解釋器,您仍然可以在腳本中運行節點。 –

1

如何:

#!/bin/sh 
node ./a/file1.js 
node ./a/file2.js 

因爲:

#!/usr/bin/env node導致通過這個腳本的第一個參數來運行該程序節點。 #!/usr/bin/env bash導致bash運行。由於該腳本是一個bash腳本,你需要後者。

+0

'#在/ usr/bin中/ env的node'導致程序'node'要運行合格這個腳本作爲它的第一個參數。 '#!/ usr/bin/env bash'導致'bash'運行。由於該腳本是一個bash腳本,你需要後者。 – Waxrat

+1

謝謝你的澄清。我想我會寫我的腳本: #在/ usr/bin中/ env的慶典 節點./a/file1.js 節點./a/file2.js 你知道,如果搭配chmod U + x應也是我的shell腳本的一部分?它有什麼用處? – CatherineAlv

+0

'chmod'不應該是腳本的一部分。這是你創建腳本後通常只做一次的東西。您不需要chmod * .js文件,只需要shell腳本。 – Waxrat

相關問題