2017-09-16 3 views
0

Le script bash suivant est supposé ouvrir 2 nouveaux onglets terminaux puis exécuter les commandes respectives:Bash - ouvrir un nouvel onglet de terminal puis exécutez la commande

mate-terminal --tab -e "cd ~/ece344/root; sys161 -w kernel" --tab -e "cd ~/ece344/root; cs161-gdb kernel" 

Le script ne se ouvre 2 nouveaux onglets cependant, les deux onglets affichent les éléments suivants erreur:

There was an error creating the child process for this terminal 
Failed to execute child process "cd" (No such file or directory) 

Ps. La réponse devrait fonctionner avec mate-terminal.

Répondre

1

Je n'ai pas installé mais je compagnon essaierais:

mate-terminal --tab -e "/bin/bash -c 'cd ~/ece344/root; sys161 -w kernel'" --tab -e "/bin/bash -c 'cd ~/ece344/root; cs161-gdb kernel'" 

L'idée est que « -e » voudrait exécuter une commande qui fonctionne probablement à l'intérieur de la fenêtre au lieu d'un shell par défaut, donc de l'erreur, je comprends que "cd" n'est pas un vrai programme dans un emplacement attendu (puisque 'cd' est dans le PATH ne devrait pas être un problème.) Donc mon exemple fournirait un chemin complet vers un shell "/ bin/bash "qui exécutera alors les commandes que vous voulez

+0

Est produit la même erreur sauf maintenant son' 'Impossible d'exécuter le processus enfant" bin/bash "(Aucun fichier ou répertoire)" ' –

+0

Ce message d'erreur suggère que vous avez écrit '-e" bin/bash ... "', pas '-e"/bin/bash ... "'. – chepner

+0

Oui, c'était le problème, merci. –