我想写一个.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文件吗?
答案 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