
Estou executando o Ubuntu 21.04 e quero criar um script que faria o seguinte:
Correr:
cd && cd path/to/repo && git pull && npm i && code . && npm run dev
Em seguida, abra uma nova guia do Terminal GNOME usando:
gnome-terminal --tab
Em seguida, mude para esta guia e execute:
cd && cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev
Então, basicamente, eu quero um terminal com 2 guias executando 2 servidores de desenvolvimento.
Eu tentei com xdotool
e xte
, mas nunca funcionou (as teclas nem são pressionadas).
É mesmo possível fazer o que eu quero?
Como sugerido abaixo eu tentei, deu-me failed to run cd
então pesquisei no Google e descobri o seguinte:
gnome-terminal --tab -- /bin/bash -e -c "cd path/to/repo && ls && git pull && npm i && code . && npm run dev" --tab -- /bin/bash -e -c "cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev"
Mas o problema é que isso npm run dev
nunca deve parar e, portanto, a segunda guia do terminal nunca é aberta. E eu preciso executá-los juntos...
Responder1
Embora gnome-terminal
indique que a -e
opção está obsoleta, ela ainda funciona no 3.40.3.
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
Os desenvolvedores parecem esquecer que esta é a única maneira de fazer o que desejam, ou seja, configurar automaticamente diferentes ambientes de trabalho em abas. A "nova" sintaxe, que adiciona comandos para serem executados no final das opções posteriores, --
não permite isso. Depois que a -e
opção for removida, você precisará mudar para outro emulador de terminal para algo assim.
Então isso, por exemplo, ainda funciona até agora:
gnome-terminal --tab -e "htop" --tab -e "top"
Substitua comandos htop
e top
por seus scripts personalizados.
Responder2
então o conteúdo do script sh é:
gnome-terminal --tab --title='frontend' -e "bash -c 'cd path/to/repo && git pull && npm i && code . && npm run dev'";
gnome-terminal --tab --title='backend' -e "bash -c 'cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev'"
Obrigado @vanadium por ajudar a descobrir a direção da pesquisa no Google;)
funciona como pretendido. Se eu abrir um terminal e escrever, sh myScript.sh
ele abrirá 2 guias extras com repositórios de backend e frontend em execução.
Um pequeno problema é que se eu executar o arquivo sh clicando duas vezes nele ele abrirá 2 janelas de terminal (feio, quero abas).
Realmente não sei como consertar isso.