
Ich verwende Ubuntu 21.04 und möchte ein Skript erstellen, das Folgendes tut:
Laufen:
cd && cd path/to/repo && git pull && npm i && code . && npm run dev
Öffnen Sie dann eine neue Registerkarte im GNOME-Terminal mit:
gnome-terminal --tab
Wechseln Sie dann zu dieser Registerkarte und führen Sie aus:
cd && cd path/to/repo && git reset --hard && git pull -f && npm i && npm run dev
Im Grunde möchte ich also ein Terminal mit zwei Tabs, auf denen zwei Entwicklungsserver laufen.
Ich habe es mit xdotool
und versucht xte
, aber es hat nie funktioniert (die Tasten werden nicht einmal gedrückt).
Ist es überhaupt möglich, das zu tun, was ich will?
Ich habe es wie unten vorgeschlagen versucht, es hat mir nicht geholfen, failed to run cd
also habe ich gegoogelt und bin auf Folgendes gestoßen:
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"
Das Problem ist jedoch, dass npm run dev
es nie aufhören soll und daher die zweite Terminal-Registerkarte nie geöffnet wird. Und ich muss sie zusammen ausführen ...
Antwort1
Obwohl gnome-terminal
darauf hingewiesen wird, dass die -e
Option veraltet ist, funktioniert sie in 3.40.3 immer noch.
# 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.
Entwickler scheinen zu vergessen, dass dies die einzige Möglichkeit ist, das zu tun, was Sie wollen, nämlich automatisch verschiedene Arbeitsumgebungen in Tabs einzurichten. Die „neue“ Syntax, die am Ende der Optionen auszuführende Befehle hinzufügt, --
erlaubt dies nicht. Sobald die -e
Option entfernt ist, müssen Sie für so etwas zu einem anderen Terminalemulator wechseln.
So funktioniert beispielsweise das hier bislang noch:
gnome-terminal --tab -e "htop" --tab -e "top"
Ersetzen Sie Befehle htop
durch top
Ihre benutzerdefinierten Skripts.
Antwort2
Der Inhalt des SH-Skripts ist also:
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'"
Danke @vanadium für die Hilfe beim Herausfinden der Googeln-Richtung ;)
es funktioniert wie vorgesehen. Wenn ich ein Terminal öffne und schreibe, sh myScript.sh
werden zwei zusätzliche Tabs mit laufenden Backend- und Frontend-Repos geöffnet.
Ein kleines Problem besteht darin, dass, wenn ich die sh-Datei durch Doppelklicken ausführe, zwei Terminalfenster geöffnet werden (hässlich, ich möchte Tabs).
Ich weiß nicht wirklich, wie ich das beheben kann.