Forum Programmation.shell Conserver un terminal actif après l'exécution d'une commande

Posté par  (site web personnel) .
Étiquettes : aucune
0
10
mar.
2009
Bonjour,
je ne suis pas sûr que cette question ait sa place ici, mais c'est ce que j'ai trouvé de mieux. Je cherche le moyen d'ouvrir un terminal (idéalement gnome-terminal), qu'il lance une commande (genre "ls"), et qu'il reste actif ensuite (c'est à dire que la fenêtre terminal ne disparaisse pas et que je puisse encore taper des commandes à l'intérieur).

J'ai testé pas mal de possibilités, mais impossible que le shell du terminal reste actif pour y taper de nouvelles commandes. Auriez vous des idées ?

Merci d'avance.
  • # Fichier d'initialisation du shell

    Posté par  . Évalué à 2.

    Salut,

    Tu peux essayer de créer un fichier .bashrc2 contenant quelque chose du genre :
    /bin/ls
    . ~/.bashrc


    et créer un profil "ls" pour gnome-terminal avec la commande personnalisée suivante :
    /bin/bash --rcfile ~/.bashrc2

    Ensuite, tu lances
    gnome-terminal --window-with-profile=ls
    et ça devrait faire à peu près ce que tu veux.

    je n'ai pas trouvé d'autres solutions plus directe.

    A+
    JJD
  • # crad à souhait

    Posté par  . Évalué à 3.

    gnome-terminal -e "bash -c 'ls -la;bash'"
    • [^] # Re: crad à souhait

      Posté par  (site web personnel) . Évalué à 2.

      On se rapproche... C'est exactement le comportement que je souhaite en tout cas, merci. La solution optimale serait un truc qui utiliserait des options de gnome-terminal (ou les profils de gnome-terminal).

      Un pote m'a également fait remarquer que
      xterm -e "ls -la;bash"
      produit le même effet, mais avec un appel à bash en moins. Bizarre cette différence de comportement...
      • [^] # Re: crad à souhait

        Posté par  . Évalué à 2.

        xterm -e "ls -la;bash"

        va lancer le shell associé à l'utilisateur et lui transmet les arguments.
        (i.e: si bash est le shell de l'utilisateur: bash -c ls -la;bash)

        "gnome-terminal -e" lui lance directement la commande passée en argument sans
        passer par un shell.

        A noter qu'un xterm -e "sleep 30" ne va pas lancer de shell pour exécuter sleep
        Pas trop le temps de chercher, mais cela voudrait dire que xterm -e lance un
        shell quand la ligne passée en argument à -e est une ligne complexe (; || &&)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.