我如何编写一个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脚本,你需要后者。