Como usar - como apelido?

11

Quando eu estava usando o openSUSE 11.3, ele vinha com vários aliases já configurados. Dois que eu usei muito foram +para pushd .e -para popd. Agora no Debian, não consigo descobrir como criar o segundo. alias -=popdtenta ler -=como uma opção de comando para o alias. Tentei colocar aspas (simples e duplas) em torno dele e precedê-lo com uma barra invertida, mas continuo recebendo mensagens de erro. Alguma sugestão?

obrigado

Lobo
fonte

Respostas:

12

tente isto:

alias -- -=popd

trabalhou pelo menos para mim:

usr@srv % alias -- -=echo
usr@srv % - test
test
binfalse
fonte
Obrigado, funciona perfeitamente. O que --faz exatamente?
Lobo
4
@ Wolf: Para a maioria dos comandos, --marca o final das opções; tudo depois que são argumentos. Por exemplo, logger foo -x barregistraria "foo bar" e trataria -xcomo uma opção, enquanto logger -- foo -x baro trataria como uma palavra comum na mensagem "foo -x bar".
usar o seguinte comando
1
A --indica que há mais opções seguir na linha de comando, a seguir -'s não são interpretados como opções. Então, isso permite que você catarquivos que começam com um -;-)
binfalse
@grawity e @binfalse: Obrigado pela explicação, isso é muito útil! Muito bom saber.
Lobo
7

Em bashvocê pode criar funções nomeadas como tais:

+() { pushd "$@"; }
-() { popd "$@"; }
user1686
fonte
o que é $@?
Lazer
2
@Lazer: No sh e no bash, $@expande todos os argumentos dados à função ou script. Sem aspas, funciona da mesma maneira que $*. Quando estiver entre aspas duplas, no entanto, ele se expande exatamente para as mesmas palavras que foram fornecidas originalmente, sem nenhuma divisão adicional.
usar o seguinte comando
@Lazer: $@expande para todos os parâmetros passados ​​para a função (equivalente a "$1" "$2" ...). Para obter mais informações, faça man bashe pesquise parâmetros especiais.
André Paramés