Eu não sou um programador, apenas um químico. Eu estou escrevendo um script bash, que eu quero rodar no servidor e espero que faça o seguinte:
- Abra um terminal
- Fazer um loop pelas pastas
slave_1
, slave_2
, ..., slave_N
para cada pasta, abra uma guia, inicie o MATLAB ( maltab -nodesktop
), crie um cd para a pasta e execute o script slave_process
.
Aqui está o que eu tenho até agora:
#!/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
Algum pode me ajudar a fazer o roteiro funcionar? Eu não estou no arquivo sudoers, então não posso mudar nada no servidor.
Atualizar. A resposta de @muru faz o truque, mas ele inicia um novo terminal em cada iteração de loop, o que é uma dor, já que preciso executar 200 instâncias do MATLAB. Eu quero ter várias guias no mesmo terminal (ou não terminal em tudo está bem também).
Aqui está o meu código modificado, que não funciona:
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[@]}"
Alguém pode ajudar aqui?