Por que 'qual tmux' e 'sudo which tmux' retornam 2 valores diferentes?

1
ssh bobby@tony:~$ which tmux                                                                        
/usr/bin/tmux
ssh bobby@tony:~$ sudo which tmux                                                                   
/usr/local/bin/tmux
ssh bobby@tony:~$ echo $PATH                                                                        
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/sbin
ssh bobby@tony:~$ sudo echo $PATH                                                                   
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/sbin:/usr/local/sbin

Alguém sabe o que está acontecendo aqui? Por que sudo which tmux retorna / usr / local / bin / tmux em vez de / usr / bin / tmux?

PS: Eu tenho 2 versões do tmux instaladas (uma em / usr / bin e a outra em / usr / local / bin).

    
por Olivier Lalonde 26.02.2012 / 22:41

1 resposta

13

É porque o seu usuário root tem um caminho diferente.

sudo echo $PATH

imprime o seu caminho . É o seu shell que faz a expansão de variável, antes sudo inicia (e passa como um argumento de linha de comando, expandido).

Tente:

sudo sh -c 'echo $PATH'
    
por 26.02.2012 / 22:54