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

时间:2016-11-13 06:09:05

标签: javascript node.js bash shell

我想写一个.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 node#!/usr/bin/env bash之间的区别感到困惑。我仍然可以使用bash运行我的.js文件吗?

2 个答案:

答案 0 :(得分:1)

怎么样:

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

由于:

#!/usr/bin/env node导致程序节点运行,将此脚本作为其第一个参数传递。 #!/usr/bin/env bash导致bash运行。由于脚本是bash脚本,因此您需要后者。

答案 1 :(得分:0)

#!/usr/bin/env node将环境设置为Node.js,这是一个JavaScript环境。

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