2 votes

Comment afficher une commande puis l'exécuter?

Comment imprimer une commande (l'écho), puis l'exécuter en une seule commande ?

Ceci est utile lorsque vous avez un alias/fonction et que vous voulez afficher quelle est la commande avant de l'exécuter.

Cela équivaudrait à

alias mi='echo mvn install; mvn install'

L'idée est d'éviter la répétition de la commande (ici 'mvn install' est écrite deux fois)

Quelque chose comme :

alias echoAndRun='...'
alias mi='echoAndRun mvn install'

Merci pour votre aide.

3voto

geekosaur Points 11085

La manière la plus simple de faire ce que vous demandez est probablement d'utiliser set -x pour activer la trace des commandes. N'oubliez pas de le désactiver ensuite.

function showAndTell {
    set -x
    "$@"
    set +x
}

(Notez que les alias shell sont rarement ce que vous voulez, sauf dans les dérivés de csh où ils peuvent simuler des fonctions dans une certaine mesure car les fonctions shell réelles n'existent pas.)

Étant donné la fonction ci-dessus, vous pourriez simplement echo "$@" dans la fonction ; si vous souhaitez modifier son affichage de la manière dont elle exécute ce qu'elle va exécuter, vous devriez le faire de cette manière.

1voto

Daniel Andersson Points 22765

Vous pouvez utiliser

set -x

avant que les commandes ne soient données.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X