获取bash脚本来运行node.js

时间:2017-01-14 17:30:36

标签: node.js bash

我有一个接受整数arg的node.js文件。

我正在尝试编写一个bash脚本来查找可用内核的数量,并为每个可用内核启动main.js.

对于1核心,它应该调用:

node main.js 3000 &

2核:

node main.js 3000 &
node main.js 30001 &

等等......

这是我的bash脚本:

#!/bin/bash
numCores=`getconf _NPROCESSORS_ONLN`
i=0
j=3000
while [ $i < $numCores ]
do
    j=$($j+$i)
    node /myApp/main.js $j &
    i=$($i+1)
done

当我尝试运行它时,我收到此错误:

bash launchnode.sh
launchnode.sh: line 5: 2: No such file or directory

main.js和launchnode.sh在同一目录中。

任何帮助?

1 个答案:

答案 0 :(得分:3)

错误在于:

while [ $i < $numCores ]

在bash中<用于输入重定向。 [test命令的别名,test 0 < 2表示&#34;将名为2的文件中的输入发送到命令test 0

相反,请使用test&#39; -lt选项进行小于比较。另外,不要忘记引用变量:

while [ "$i" -lt "$numCores" ]

或者,如果您仅定位bash,则可以使用算术扩展:

while (( i < numCores ))

您还需要在后续行中使用双括号进行算术运算:

i=$(($j+$i))