Como usar - como apelido?
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?
alias -- -=popd
trabalhou pelo menos para mim:
usr@srv % alias -- -=echo
usr@srv % - test
— binfalse
Obrigado, funciona perfeitamente. O que --faz exatamente?
@ 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".
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 -;-)
@grawity e @binfalse: Obrigado pela explicação, isso é muito útil! Muito bom saber.
Em bashvocê pode criar funções nomeadas como tais:
+() { pushd "$@"; }
-() { popd "$@"; }
o que é $@?
@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.
@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.