Comment utiliser - comme alias?

11

Lorsque j'utilisais openSUSE 11.3, il était fourni avec plusieurs alias déjà configurés. Deux que j'utilisais beaucoup étaient +pour pushd .et -pour popd. Maintenant sur Debian, je ne sais pas comment créer le second. alias -=popdessaie de lire -=comme une option de commande pour l'alias. J'ai essayé de mettre des guillemets (simples et doubles) autour, et de le faire précéder d'une barre oblique inverse, mais je continue de recevoir des messages d'erreur. Aucune suggestion?

Merci

Loup
la source

Réponses:

12

essaye ça:

alias -- -=popd

travaillé au moins pour moi:

usr@srv % alias -- -=echo
usr@srv % - test
test
binfalse
la source
Merci, fonctionne parfaitement. Que fait- --il exactement?
Loup
4
@Wolf: pour la plupart des commandes, --marque la fin des options; tout après ce sont des arguments. Par exemple, logger foo -x barconsignerait "foo bar" et traiterait -xcomme une option, tandis que logger -- foo -x barle traiterait comme un mot ordinaire dans le message "foo -x bar".
user1686
1
Le --indique qu'aucune autre option ne suit sur la ligne de commande, les suivantes -ne sont pas interprétées comme des options. Cela vous permet donc de catfichiers qui commencent par un -;-)
binfalse
@grawity et @binfalse: Merci pour l'explication, c'est très utile! Très bon à savoir.
Loup
7

Dans bashvous pouvez créer des fonctions nommées comme telles:

+() { pushd "$@"; }
-() { popd "$@"; }
user1686
la source
c'est quoi $@?
Lazer
2
@Lazer: en sh et bash, $@s'étend à tous les arguments donnés à la fonction ou au script. Non cité, cela fonctionne de la même manière que $*. Cependant, lorsqu'il se trouve entre guillemets, il se développe exactement aux mêmes mots que ceux donnés à l'origine, sans fractionnement supplémentaire.
user1686
@Lazer: $@s'étend à tous les paramètres passés à la fonction (équivalent à "$1" "$2" ...). Pour plus d'informations, faites man bashet recherchez des paramètres spéciaux.
André Paramés