Je dois ouvrir plusieurs onglets de terminal, leur donner des titres, accéder à un répertoire et faire en sorte que chaque onglet exécute une commande.
Je suis nouveau sur Linux et les scripts shell, après avoir recherché en ligne et vérifié certaines solutions, j'ai créé ce script (EDITED basé sur les réponses ci-dessous):
#!/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
Il ouvre les onglets, les nomme, mais n'exécute pas les commandes générant cette erreur :
Une erreur s'est produite lors de la création du processus enfant pour ce terminal
Un autre défaut est que si j'arrête la commande en cours d'exécution, cela ferme l'onglet, ce que je ne veux pas. Je dois pouvoir arrêter la commande et l'exécuter à nouveau dans le même onglet.
Qu'est-ce qui ne va pas avec le script ? Existe-t-il un autre moyen plus simple de procéder ?
Remarque :Si j'ai supprimé la partie (-e ""bash -c ${cmds[i]} ;bash"") de la commande, elle ouvre les onglets dans le répertoire donné et les nomme, sans erreur.
-Edit-1 :
Après avoir appliqué la réponse @Tuknutx ci-dessous et modifié le script, l'erreur n'apparaît plus, mais cela me donne bash: rails c: command not found
et rails s
crée une nouvelle application rails au lieu de démarrer le serveur rails, j'utilise .rmvrc pour sélectionner un gemset une fois ce dossier accessible.
Réponse acceptée :
Je recommanderais d'utiliser tmux
avec tmuxinator
, il fera le travail pour vous, et vous pouvez compter sur terminator
les mises en page aussi !
Pour terminator
layout checkout la réponse de mhnagaoka ici askubuntu aussi :
Après avoir configuré votre mise en page, cliquez avec le bouton droit sur l'arrière-plan de n'importe quel terminal et choisissez Préférences → Mises en page onglet et cliquez sur Ajouter bouton.
Donnez-lui un nom et appuyez sur Fermer .
Cela devrait créer le
~/.config/terminator/config
mentionné fichier.Vous pouvez maintenant démarrer le terminateur en utilisant la mise en page enregistrée en utilisant :
terminator -l yourLayout
(remplacez votreLayout avec ce que vous
avez choisi à l'étape 2).(facultatif) Modifiez le
~/.config/terminator/config
fichier de sorte que là où il est écrit[layouts]
et imbriqué en dessous[[yourLayout]]
, renommez votreLayout à par défaut et supprimer/renommer le précédent par défaut agencement. Désormais, lorsque Terminator démarre sans aucun paramètre, il charge
votre[[default]]
personnalisé mise en page !