如何启动bash脚本,它将启动另一个bash文件?

时间:2019-02-16 18:14:52

标签: linux bash debian

我有1000个javascript文件,我想用一种方法在debian下启动所有这些文件。例如,在Windows上,我有这个:

start start2.bat
node myBot1.js

然后是start2.bat中的内容:

start start3.bat
node myBot2.js

这样,我可以在Windows下启动所有机器人,但现在我想知道如何在debian下执行该操作?

2 个答案:

答案 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.