J'ai un script qui prend une commande et l'exécute sur un hôte distant. Il fonctionne très bien, par exemple:Comment est-ce que je peux citer ou grouper automatiquement des arguments de ligne de commande pour l'alias dans bash?
$ rexec "ant build_all"
exécutera la commande « ant build_all » sur le système distant (en passant à travers SSH, etc.).
Parce que je suis paresseux, je veux mettre en place un alias pour cette commande (et en fin de compte, plusieurs autres), de sorte que, par exemple, je peux invoquer
$ rant build_all
et bash il sera invoquer automatiquement
$ rexec "ant build_all"
J'ai essayé de le faire avec alias, mais si je définis
alias rant=rexec ant
alors tout arguments passés à « diatribe » seront simplement ajoutés à la fin, comme suit:
$ rant build_all -Dtarget=Win32
(interpreted as:)
$ rexec "ant" build_all -Dtarget=Win32
Cela échoue, car rexec prend vraiment juste un argument, et ignore les autres. Je pourrais probablement faire cela avec un script bash wrapper, mais je me demandais si bash avait des built-ins pour faire cela pour moi, peut-être une version named-argument d'alias, ou une commande de chaîne de citation perl-like (par exemple qw//), ou une autre.
en fait, je reste des informations importantes: rexec est en fait un alias pour une autre commande, comme si: alias rexce = "run_remote.sh -c" mais il prend toujours une seule chaîne comme argument. Ceci est important pour la solution acceptée, ci-dessous, avec ma modification. – glamdringlfo