bash alias não transita com sudo

1

Estou curioso para saber se há uma maneira de fazer o meu .bash_profile funcionar quando eu sudo um programa.

Por exemplo, eu configuro para alias emerge='emerge -av' para que eu possa instalar o software e sempre me perguntará se quero continuar antes de fazer o download e instalar. No entanto, eu só notei quando eu sudo emerge foo , o padrão é apenas o comando simples emerge foo em vez de emerge -av foo .

A única coisa que vem em mente para consertar isso é também colocar o alias no .bash_profile do root, mas eu não quero ter que recorrer a isso, já que sempre terei que fazer alterações em dois lugares quando eu quiser adicionar coisas ao meu perfil.

Existe outra maneira de contornar isso que eu não estou familiarizado?

    
por agent154 26.06.2012 / 02:23

2 respostas

5

No bash,

alias sudo='sudo '

fará com que o bash expanda todos os aliases que vierem depois de sudo .

    
por 26.06.2012 / 02:25
2

A outra maneira de fazer isso (embora em esta instância especial eu recomendo a resposta do Grawity) seria usar o -E flag para sudo para herdar o ambiente.

   -E          The -E (preserve environment) option will override the
               env_reset option in sudoers(5)).  It is only available when
               either the matching command has the SETENV tag or the
               setenv option is set in sudoers(5).
    
por 26.06.2012 / 04:26