man bash
, похоже, говорит о том, что если я хочу выполнить команду в отдельной оболочке bash
, все, что мне нужно сделать, это bash -c command
:
-c string If the -c option is present, then commands are read from string.
Я хочу сделать это, потому что янеобходимо запустить несколько вещей в разных средах:
bash --rcfile ~/.bashrc.a -c mytest.a
bash --rcfile ~/.bashrc.b -c mytest.b
Однако это не сработало, как ожидалось;Можно видеть, что по количеству bash
работающих оболочек, например:
$ bash
$ ps
PID TTY TIME CMD
7554 pts/0 00:00:00 bash
7573 pts/0 00:00:00 ps
28616 pts/0 00:00:00 bash
$ exit
exit
$ ps
PID TTY TIME CMD
7582 pts/0 00:00:00 ps
28616 pts/0 00:00:00 bash
$ bash -c ps
PID TTY TIME CMD
7583 pts/0 00:00:00 ps
28616 pts/0 00:00:00 bash
Как следует изменить вызов bash
, чтобы запустить новую оболочку с указанным rc,выполните данную команду в этой оболочке (с env, измененным в соответствии с rc) и выйдите назад?