Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/04/2019, à 04:06

abecidofugy

[Résolu] Enchaîner plusieurs commandes en zsh

Salut,

Euh… pour enchaîner deux commandes, j’utilisais toujours &&
Mais là j’ai un souci : les commandes se font l’une après l’autre, et je dois fermer une application pour pouvoir passer à la suivante (si je ne suis pas clair, désolé).

Ma commande :

konsole --new-tab --workdir ~ && konsole --new-tab --workdir ~ && konsole --new-tab --workdir ~ && konsole --new-tab --workdir ~ && konsole --new-tab --workdir ~ && konsole --new-tab --workdir ~ && konsole --new-tab --workdir ~ && dolphin --split /media/sf_D_DRIVE/Soulseek-downloads/complete /media/sf_D_DRIVE/Musique /home/patrice/soundKonverter trash:/ > /dev/null 2> /dev/null && quassel > /dev/null 2> /dev/null & choqok > /dev/null 2> /dev/null && kontact  > /dev/null 2> /dev/null && firefox > /dev/null 2> /dev/null && kate --start start  > /dev/null 2> /dev/null &

Si je remplace les && par des ; j’ai le même souci. Si je remplace par un seul & : ça marche, mais si je ferme la konsole à partir de laquelle j’ai tapé la commande, ça me ferme tous les programmes ouverts par cette même commande.

Merci de me rafraîchir la mémoire…

//EDIT : en fait, j’aimerais pouvoir taper mon alias de commande que j’ai mis dans mon .zshrc sans passer par konsole, mais directement via ALT + F2

Dernière modification par abecidofugy (Le 14/04/2019, à 12:03)

Hors ligne

#2 Le 13/04/2019, à 07:44

LukePerp

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Bonjour,
Utilises le & seul pour exécuter un autre script et non une autre commande, afin de fermer le terminal initial.

command 1 ; command 2 & sh -c /chemin/script.sh

&& et ; c'est presque pareil mais je n'ai pas compris la différence, j'utilise toujours ; au lieu de &&

Dernière modification par LukePerp (Le 13/04/2019, à 07:45)


Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Ethereum user

Hors ligne

#3 Le 13/04/2019, à 07:55

pingouinux

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Bonjour,

LukePerp #2 a écrit :

&& et ; c'est presque pareil mais je n'ai pas compris la différence, j'utilise toujours ; au lieu de &&

commande_1; commande_2

commande_2 est exécutée quel que soit le résultat de command_1

commande_1 && commande_2

commande_2 n'est exécutée que si command_1 se termine sans erreur (code de retour égal à 0).

Pour pouvoir fermer le terminal sans tuer la commande qui a été lancée, c'est :

nohup commande &

Mais si les commandes s'enchaînent, je ne sais pas où placer nohup. Il faudrait tester.

Hors ligne

#4 Le 13/04/2019, à 08:05

abecidofugy

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Ok, alors j'ai fait un alias dans mon .zshrc :

alias go='sh -c ~/bin/go.sh'

Mon script sh :

#!/bin/bash
konsole --new-tab --workdir ~ &
konsole --new-tab --workdir ~ &
konsole --new-tab --workdir ~ &
konsole --new-tab --workdir ~ &
konsole --new-tab --workdir ~ &
konsole --new-tab --workdir ~ &
konsole --new-tab --workdir ~ &
dolphin --split /media/sf_D_DRIVE/Soulseek-downloads/complete /media/sf_D_DRIVE/Musique /home/patrice/soundKonverter trash:/ > /dev/null 2> /dev/null &
quassel > /dev/null 2> /dev/null &
choqok > /dev/null 2> /dev/null &
kontact  > /dev/null 2> /dev/null &
firefox > /dev/null 2> /dev/null &
kate --start start  > /dev/null 2> /dev/null &

Ça marche, mais ça ne quitte pas le terminal initial.

Hors ligne

#5 Le 13/04/2019, à 08:26

pingouinux

Re : [Résolu] Enchaîner plusieurs commandes en zsh

@abecidofugy #4 :
Comme tu appelles ton script avec sh, il n'est pas tenu compte de la première  ligne #!/bin/bash.
Essaye ceci :

alias go='nohup sh -c ~/bin/go.sh & exit'

Hors ligne

#6 Le 13/04/2019, à 08:30

abecidofugy

Re : [Résolu] Enchaîner plusieurs commandes en zsh

@pingouinux :

nohup: les entrées sont ignorées et la sortie est ajoutée à 'nohup.out'

[1]  + done       nohup sh -c ~/bin/go.sh

Hors ligne

#7 Le 13/04/2019, à 08:47

pingouinux

Re : [Résolu] Enchaîner plusieurs commandes en zsh

@abecidofugy #6 :
Ce message est normal, et tu peux rediriger la sortie.

alias go='nohup sh -c ./go.sh >ma_sortie & exit'

D'ailleurs, si tu vois ce message, tu n'as pas dû ajouter l'exit dans l'alias pour fermer aussitôt le terminal.

Hors ligne

#8 Le 13/04/2019, à 08:56

abecidofugy

Re : [Résolu] Enchaîner plusieurs commandes en zsh

pingouinux a écrit :

@abecidofugy #6 :
Ce message est normal, et tu peux rediriger la sortie.

alias go='nohup sh -c ./go.sh >ma_sortie & exit'

D'ailleurs, si tu vois ce message, tu n'as pas dû ajouter l'exit dans l'alias pour fermer aussitôt le terminal.

Marche pas.

J'ai corrigé par :

alias go='nohup sh -c ~/bin/go.sh > /dev/null 2> /dev/null & exit'

Mais ça ne ferme pas le terminal initial… (j’ai fait un source ~/.zshrc bien sûr)

Hors ligne

#9 Le 13/04/2019, à 09:23

pingouinux

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Effectivement, je viens de tester en zsh, et le terminal ne se ferme pas. J'avais fait mes tests en bash.

Hors ligne

#10 Le 13/04/2019, à 18:56

abecidofugy

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Je suis en train de chercher dans la doc de zsh l’équivalent de exit pour le bash… dur dur…

Hors ligne

#11 Le 13/04/2019, à 19:26

Alex10336

Re : [Résolu] Enchaîner plusieurs commandes en zsh


« On ne répond pas à une question par une autre question. » (moi ;-) )

Hors ligne

#12 Le 13/04/2019, à 20:25

abecidofugy

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Alex10336 a écrit :

Mon script est en bash wink

Là je cherche la syntaxe pour appeler le script via un alias zsh, et autofermer le terminal qui l’a lancé.

//EDIT : mon alias est à présent :

alias go='sh -c ~/bin/go.sh &!'

Y’a pas de sortie dans le terminal (merci Alex10336), mais il ne s’autoferme toujours pas.

Dernière modification par abecidofugy (Le 13/04/2019, à 21:15)

Hors ligne

#13 Le 14/04/2019, à 06:57

pingouinux

Re : [Résolu] Enchaîner plusieurs commandes en zsh

Essaye ceci :

alias go='~/bin/go.sh &! exit'

Hors ligne

#14 Le 14/04/2019, à 10:52

abecidofugy

Re : [Résolu] Enchaîner plusieurs commandes en zsh

pingouinux a écrit :

Essaye ceci :

alias go='~/bin/go.sh &! exit'

OMG ! Ça marche parfaitement !

Bravo et merci !

Hors ligne