Как запустить скрипт bash, который запустит другой файл bash? - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть 1000 файлов javascript, и я хотел бы запустить все из них под Debian.Например, на окнах у меня было это:

start start2.bat
node myBot1.js

И вот что в start2.bat:

start start3.bat
node myBot2.js

Таким образом, я могу запустить всех своих ботов под окнами, но теперь мне интересно, как я могу сделать это под Debian?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019
run-parts - run scripts or programs in a directory

Это инструмент, который Anacron использует для выполнения всех файлов в /etc/cron.daily и т. Д.

Просто запустите run-parts /foo/bar, и все файлы в /foo/bar с флагом исполняемого файла будут запущены последовательно.

run-parts запускает все исполняемые файлы, названные в рамках ограничений, описанных ниже, которые находятся в каталоге directory.Другие файлы и каталоги игнорируются.

   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.
0 голосов
/ 16 февраля 2019

Чтобы просто запустить команду узла для данного сценария, я не вижу смысла в наличии 100 сценариев bash, так как вы можете просто:

 node scriptA.js

Если у вас был сценарий-оболочка run_A.shс содержимым, приведенным выше, вы должны запустить его следующим образом:

bash run_a.sh

Чтобы один скрипт запускал их все, по одному, напишите scrupt 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

Оба приведенных выше принимают имена сценариевопределить порядок их запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...