我如何编写一个shell脚本使用节点一个接一个地运行多个JavaScript文件?

我想写一个.sh文件来运行多个JavaScript文件。

我知道我需要以下几行:

#!/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文件吗?

#!/usr/bin/env node将环境设置为JavaScript环境Node.js。

例如,如果您使用以下内容创build一个简单的脚本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 

怎么样:

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

因为:

#!/usr/bin/env node会导致运行程序节点,并将此脚本作为其第一个parameter passing。 #!/usr/bin/env bash导致bash运行。 由于脚本是一个bash脚本,你需要后者。