-1
votes

Exécution de 2 processus à la fois et affichant la sortie des deux dans le même terminal

est-ce possible ?? Si oui, comment?

Je préférerais avoir 2 scripts Bash exécutant dans une borne au lieu de deux.

Ils doivent tous les deux être de la production en direct.


11 commentaires

./ script1.sh & ./script2.sh & ? Bien que cela signifie que la sortie sera entrelacée et elles ne seront pas interactives. Il n'est pas clair si cela répond à vos exigences car votre description n'est pas très détaillée.


Vous savez comment Terminator et Stuff vous permettent d'avoir plusieurs terminaux? Pourriez-vous faire quelque chose comme ça, mais juste pour exécuter plusieurs scripts ou fonctions à la fois sur le terminal le fractionnement essentiellement?


Il existe des utilitaires tels que l'écran et tmux qui peut être ce que vous voulez.


J'ai envisagé ces mais c'est un peu à part mon point théorique si c'est juste une nouvelle application.


Peut-être mieux formulé pour superposer une fonction bash sur une autre?


Toujours pas clair ce que vous demandez. Que signifie "superposition"? Vous devrez être beaucoup plus claire pour décrire votre question si vous espérez avoir une réponse.


Espérons que cette image aidera à expliquer ce que je tente de réaliser. et d'avoir les deux sorties en direct. i.imgur.com/xcpbcgz.png


Votre point théorique semble inutilement compliqué: que si script1 produit 1 ligne de sortie tandis que script2 produit 100 ... espérez-vous que la moitié droite ou inférieure de votre terminal fait défiler pendant que L'autre moitié ne fait rien? (Si oui, alors ... que est ce que écran et tmux sont destinés à faire, et ils le font C'est bien . Quelqu'un peut-il faire pour vous ce que vous demandez? Bien sûr, cela impliquerait de réécrire plusieurs composants de ces deux utilitaires.)


Voulez-vous dire que vous voulez un processus pour faire défiler la moitié supérieure de l'écran et l'autre pour faire défiler le bas? Ou un à gauche et un à droite? Ou des lignes des deux scripts marqués avec le nom du script et entrelacé dans la même zone? Ni votre description ni votre diagramme ne sont très clairs.


Voici un script Python que j'ai écrit précédemment pour quelqu'un qui fera quelque chose de similaire: Stackoverflow.com/Questtions/62106232/... . Il pourrait facilement être adapté de sorte que les commandes qui sont exécutées dans chacun des invocations Subprocess.popen indiquées dans l'exemple sont transmises sur la ligne de commande.


Maintenant ajouté une interface de ligne de commande - voir la réponse.


3 Réponses :


0
votes

Essayez ce script:

https://gist.github.com/alaniwi/5203f96fc8ab86b327415df72d83bc7c < / a>

Exemple d'utilisation: xxx

donne:

 Entrez la description de l'image ici < / p>

copie du code ici au cas où le gist devient indisponible pour une raison quelconque: xxx


0 commentaires

0
votes

En tant que solution bon marché et bon outil de toute façon, vous pouvez utiliser Multitail pour cela.

# Terminal 1
./script1.sh > script1.output &
./script2.sh > script2.output &

multitail *output


0 commentaires

0
votes

Votre question n'est toujours pas claire, mais vous pouvez exécuter deux scripts ou programmes en parallèle avec GNU parallèle et dites-le de baliser chaque ligne de sortie avec le nom du script qui l'a généré et d'interlaisser Seulement des pauses en ligne, c'est-à-dire pas au milieu d'une ligne, comme ceci: xxx

Sortie d'échantillon xxx < p> J'ai utilisé ce qui suit comme exemple de script, en l'enregistrant comme script1.sh et script2.sh : xxx


0 commentaires