我有1000个javascript文件,我想用一种方法在debian下启动所有这些文件。例如,在Windows上,我有这个:
start start2.bat
node myBot1.js
然后是start2.bat
中的内容:
start start3.bat
node myBot2.js
这样,我可以在Windows下启动所有机器人,但现在我想知道如何在debian下执行该操作?
答案 0 :(得分:4)
仅在给定脚本上运行node命令,我看不到拥有100个bash脚本的意义,您可以简单地做到这一点:
node scriptA.js
如果您有一个名为run_A.sh
的包装脚本,其中包含上面的内容,则可以将其运行为:
bash run_a.sh
要让一个脚本一次全部运行它们,请编写一个名为run_all.sh的脚本,如下所示:
for JS in *.js
do
echo "Starting $JS"
node $JS
done
然后:
bash run_all.sh
或者,如果要将它们作为一个大脚本运行(如果适用):
cat *.js > all.js
node all.js
以上两种情况均假设脚本名称决定了运行它们的顺序。
答案 1 :(得分:1)
run-parts - run scripts or programs in a directory
那是anacron用于执行/etc/cron.daily
等中所有文件的工具。
只需启动run-parts /foo/bar
,/foo/bar
中带有可执行标志的所有文件将依次启动。
运行部分运行在约束内命名的所有可执行文件 如下所述,位于 目录目录。其他文件和目录将被静默忽略。
If neither the --lsbsysinit option nor the --regex option is given then the names must consist entirely of ASCII upper- and lower-case letters, ASCII digits, ASCII underscores, and ASCII minus-hyphens. If the --lsbsysinit option is given, then the names must not end in .dpkg-old or .dpkg-dist or .dpkg-new or .dpkg-tmp, and must belong to one or more of the following namespaces: the LANANA-assigned namespace (^[a-z0-9]+$); the LSB hierarchical and reserved namespaces (^_?([a-z0-9_.]+-)+[a-z0-9]+$); and the Debian cron script namespace (^[a-zA- Z0-9_-]+$). If the --regex option is given, the names must match the custom extended regular expression specified as that option's argument. Files are run in the lexical sort order (according to the C/POSIX locale character collation rules) of their names unless the --reverse option is given, in which case they are run in the opposite order.