260 votes

Plusieurs commandes dans un alias pour bash

J'aimerais définir un alias qui exécute les deux commandes suivantes consécutivement.

gnome-screensaver
gnome-screensaver-command --lock

Droit maintenant, je l'ai ajouté

alias lock='gnome-screensaver-command --lock'

à mon .bashrc mais depuis que j'ai verrouillé mon poste de travail, donc, il serait plus facile de taper une seule commande.

473voto

mouviciel Points 36624

Essayez:

alias lock='gnome-screensaver; gnome-screensaver-command --lock'

ou

lock() {
    gnome-screensaver
    gnome-screensaver-command --lock
}

dans votre .bashrc

La deuxième solution permet d'utiliser des arguments.

99voto

gpojd Points 12043

Les autres réponses de répondre à la question de manière adéquate, mais votre exemple ressemble à la deuxième commande dépend de la première sortie avec succès. Vous pouvez essayer une évaluation de court-circuit dans votre alias:

alias lock='gnome-screensaver && gnome-screensaver-command --lock'

Maintenant, la deuxième commande ne sera même pas être tentée que si le premier est réussi. Une meilleure description de court-circuit d'évaluation est décrite dans cette SORTE de question.

26voto

lhunath Points 27045

Les alias sont fait l'un pour l'aliasing noms de commande. En dehors de cela devrait être fait avec les fonctions.

13voto

Sean Bright Points 39480

N'est-ce pas le travail?

alias whatever='gnome-screensaver ; gnome-screensaver-command --lock'

6voto

Adnan Points 1623

Cela irait à l'2 commandes l'une après l'autre:

alias lock='gnome-screensaver ; gnome-screensaver-command --lock'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X