slave_1
, slave_2
, ..., slave_N
для каждой папки откройте вкладку, запустите MATLAB (maltab -nodesktop
), перейдите в папку cd и запустите скрипт slave_process
. Вот что у меня есть:
#!/bin/bash
for i in {1..5}
do
gnome-terminal --tab --working-directory="/usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin" --command='./matlab -nodesktop; cd /mnt/projects/slave_$i; -nosplash -r slave_process'
done
exit 0
Может ли кто-нибудь помочь мне заставить скрипт работать? Я не в файле sudoers, поэтому не могу ничего изменить на сервере.
Обновление. Ответ @muru делает свое дело, но он запускает новый терминал при каждой итерации цикла, что является проблемой, так как мне нужно запустить около 200 экземпляров MATLAB. Я хочу, чтобы в одном терминале было несколько вкладок (или вообще нет терминала). Вот мой модифицированный код, который не работает:
args=()
for i in {1..5}; do
cmd=working-directory='/mnt/projects/slave_$i' --command='/usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/matlab -nodesktop -nosplash -r slave_process'
args+=(--tab-with-profile=Default -e "sh -c \"$cmd; bash\"")
done
gnome-terminal "${args[@]}"
Может кто-нибудь помочь здесь?
Примечания:
''
- таким образом slave_$i
во второй части Вашей команды останется slave_$i
. matlab
команда, выполните его непосредственно использование полного пути, вместо того, чтобы запуститься в том каталоге и использовать ./matlab
. -nosplash -r slave_process
аргументы matlab
, они должны быть в той же команде. exit 0
является ненужным. Рассматривают что-то как:
#!/bin/bash
for i in {1..5}
do
gnome-terminal --tab --working-directory="/mnt/projects/slave_$i" \
--command='/usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/matlab -nodesktop -nosplash -r slave_process'
done