Jak korzystać - jako alias?

11

Kiedy korzystałem z openSUSE 11.3, przyszedł on z kilkoma już skonfigurowanymi aliasami. Dwa, z których często korzystałem, były +dla pushd .i -dla popd. Teraz w Debianie nie mogę wymyślić, jak stworzyć drugi. alias -=popdpróbuje odczytać -=jako opcję polecenia aliasu. Próbowałem umieścić wokół niego cudzysłowy (zarówno pojedyncze, jak i podwójne), poprzedzając je odwrotnym ukośnikiem, ale wciąż otrzymuję komunikaty o błędach. Jakieś sugestie?

Dzięki

Wilk
źródło

Odpowiedzi:

12

Spróbuj tego:

alias -- -=popd

pracował przynajmniej dla mnie:

usr@srv % alias -- -=echo
usr@srv % - test
test
binfalse
źródło
Dzięki, działa idealnie. Co --dokładnie robi?
Wolf
4
@Wolf: W przypadku większości poleceń --oznacza koniec opcji; wszystko po to argumenty. Na przykład logger foo -x barlogowałby „pasek foo” i traktowałby go -xjako opcję, a logger -- foo -x bartraktowałby go jako zwykłe słowo w komunikacie „pasek foo -x”.
user1686 24.04.11
1
--Wskazuje, że nie ma więcej opcji postępować w wierszu polecenia następujące -„s nie są interpretowane jako opcje. To pozwala ci na catpliki, które zaczynają się od -;-)
binfalse
@grawity i @binfalse: Dzięki za wyjaśnienie, to bardzo pomocne! Bardzo dobrze wiedzieć.
Wolf
7

W bashmożesz tworzyć funkcje o takich nazwach:

+() { pushd "$@"; }
-() { popd "$@"; }
użytkownik1686
źródło
co jest $@?
Lazer
2
@Lazer: W sh i bash $@rozwija się do wszystkich argumentów podanych dla funkcji lub skryptu. Niewymieniony działa tak samo jak $*. Jednak wewnątrz podwójnych cudzysłowów rozwija się do dokładnie takich samych słów, jakie podano pierwotnie, bez dodatkowego podziału.
user1686 24.04.11
@Lazer: $@rozwija się do wszystkich parametrów przekazanych do funkcji (równoważne z "$1" "$2" ...). Aby uzyskać więcej informacji, wykonaj man bashi wyszukaj parametry specjalne.
André Paramés