我想编写一个.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
运行我的bash
文件吗
发布于 2016-11-12 23:16:31
#!/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
发布于 2016-11-12 22:17:27
不如:
#!/bin/sh
node ./a/file1.js
node ./a/file2.js
因为:
#!/usr/bin/env node
将使程序节点运行,并将此脚本作为其第一个参数传递。#!/usr/bin/env bash
使bash运行。因为脚本是bash脚本,所以需要后者。
https://stackoverflow.com/questions/40571100
复制相似问题