Ich muss mehrere Terminal-Tabs öffnen, ihnen Titel geben, in ein Verzeichnis gehen und jeden Tab dazu bringen, einen Befehl auszuführen.
Ich bin neu in Linux und Shell-Skripting, nachdem ich online gesucht und einige Lösungen überprüft habe, habe ich dieses Skript erstellt (BEARBEITET basierend auf den Antworten unten):
#!/bin/bash
cd /media/Extra/Project
tab=" --tab-with-profile=Default"
options=(--tab --title=Terminal)
cmds[1]="'rails s'"
titles[1]="Server"
cmds[2]="'rails c'"
titles[2]="Console"
for i in 1 2; do
options+=($tab --title="${titles[i]}" -e "bash -c "${cmds[i]} ; bash"" )
done
gnome-terminal "${options[@]}"
exit 0
Es öffnet die Registerkarten, benennt sie, kann aber die Befehle nicht ausführen, die diesen Fehler erzeugen:
Beim Erstellen des untergeordneten Prozesses für dieses Terminal ist ein Fehler aufgetreten
Ein weiteres Manko ist, dass, wenn ich den laufenden Befehl anhalte, die Registerkarte geschlossen wird, was ich nicht möchte. Ich muss in der Lage sein, den Befehl zu stoppen und innerhalb derselben Registerkarte erneut auszuführen.
Was ist mit dem Skript falsch? Gibt es einen anderen einfacheren Weg, dies zu tun?
Hinweis:Wenn ich den Teil (-e „“bash -c ${cmds[i]};bash““) aus dem Befehl entfernt habe, öffnet er die Registerkarten im angegebenen Verzeichnis und benennt sie ohne Fehler.
-Edit-1:
Nach dem Anwenden der @Tuknutx-Antwort unten und dem Bearbeiten des Skripts wird der Fehler nicht mehr angezeigt, aber er gibt mir bash: rails c: command not found
und rails s
eine neue Rails-App erstellt, anstatt den Rails-Server zu starten, verwende ich .rmvrc, um ein Gemset auszuwählen, sobald auf diesen Ordner zugegriffen wird.
Akzeptierte Antwort:
Ich würde die Verwendung von tmux
empfehlen mit tmuxinator
, es erledigt die Arbeit für Sie, und Sie können sich auf terminator
verlassen Layouts auch!
Für terminator
layout checkout mhnagaokas Antwort hier auch askubuntu:
-
Nachdem Sie Ihr Layout eingerichtet haben, klicken Sie mit der rechten Maustaste auf einen beliebigen Terminalhintergrund und wählen Sie Einstellungen → Layouts und klicken Sie auf Hinzufügen Schaltfläche.
-
Geben Sie ihm einen Namen und klicken Sie auf Schließen .
-
Dies sollte den erwähnten
~/.config/terminator/config
erstellen Datei. -
Jetzt können Sie Terminator mit dem gespeicherten Layout starten mit:
terminator -l yourLayout
(ersetze deinLayout mit dem, was Sie
in Schritt 2 gewählt haben). -
(optional) Bearbeiten Sie
~/.config/terminator/config
Datei so, dass dort[layouts]
steht und darunter verschachtelt[[yourLayout]]
, benennen Sie IhrLayout um auf Standard und den vorherigen Standard entfernen/umbenennen Layout. Wenn Terminator jetzt ohne Parameter startet, wird es
Ihren benutzerdefinierten[[default]]
laden Layout!