alias com parâmetros

1

Recentemente, comecei a configurar meu alias usual. Acabei precisando passar mais informações do que o meu pseudônimo originalmente necessário

$ alias runserver = 'python manage.py runserver'
$ runserver 80  // turns out you need sudo
$ sudo runserver 80
$ sudo: runserver: command not found

Agora que estava escrevendo isso, percebi que talvez o alias não esteja definido para root. Poderia ser isso?

Se não, alguém poderia explicar por que isso não funciona.

Por favor e obrigado

    
por myusuf3 12.03.2011 / 21:31

2 respostas

2

Observação: o corpo desta pergunta é uma duplicata de Aliases não disponíveis ao usar o sudo .

Na pergunta acima , eles resolveram o problema do sudo aliasando o sudo também:

alias sudo='sudo '

Observe que o título é enganoso, "alias com parâmetro" seria uma função. Supondo que o seu runserver alias aceitaria um único argumento, a porta:

runserver(){ python manage.py runserver ;}

Se runserver aceitar uma quantidade desconhecida de parâmetros, passe todos os parâmetros usando:

runserver(){ python manage.py runserver "$@";}

Para a última sintaxe, consulte o manual do bash .

    
por Lekensteyn 12.03.2011 / 21:47
0

sudo não vê aliases no shell de chamada. Os aliases em .bashrc serão exibidos com sudo -s ou sudo -i ; o primeiro é seu .bashrc , o segundo para root 's.

De qualquer forma, o caminho mais fácil não seria alias runserver='sudo python manage.py runserver' ?

    
por geekosaur 12.03.2011 / 21:46