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

Odpowiedzi:


12

Spróbuj tego:

alias -- -=popd

pracował przynajmniej dla mnie:

usr@srv % alias -- -=echo
usr@srv % - test
test

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 "$@"; }

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.