Script para executar um comando em um terminal e depois abrir uma nova aba do terminal e executar outro comando

Script para executar um comando em um terminal e depois abrir uma nova aba do terminal e executar outro comando

Estou executando o Ubuntu 21.04 e quero criar um script que faria o seguinte:

  1. Correr:

    cd && cd path/to/repo && git pull && npm i && code . && npm run dev
    
  2. Em seguida, abra uma nova guia do Terminal GNOME usando:

    gnome-terminal --tab
    
  3. 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 xdotoole 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 cdentã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 devnunca deve parar e, portanto, a segunda guia do terminal nunca é aberta. E eu preciso executá-los juntos...

Responder1

Embora gnome-terminalindique que a -eopçã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 -eopçã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 htope toppor 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.shele 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.

informação relacionada