Adiciona / sbin a $ PATH mas apenas temporariamente

1

Existem muitas respostas sobre como adicionar um diretório ao $ PATH. No entanto, estou procurando uma maneira de adicioná-lo temporariamente a um caminho.

Por exemplo, ao executar um script como sudo, nem todos os scripts têm o caminho completo do diretório e eu gostaria de adicioná-lo para uma instância, para que o script possa ser executado.

    
por user675675 15.12.2016 / 23:29

2 respostas

0

Uma boa abordagem para isso é incluir caminhos nos comandos de script. Então, ao invés de

ip addr

Você teria

/sbin/ip addr

Isso elimina a dependência do caminho com as entradas corretas. Você pode atualizar a variável path em um script, e ela só existirá para o script e para qualquer processo filho e será revertida assim que terminar.

export PATH=$PATH:/sbin

Isso adiciona /sbin ao caminho existente.

    
por 15.12.2016 / 23:40
0

O comando env faz exatamente o que você deseja:

env variable=value command

Para a duração de command , $variable é definido como value , mas o ambiente atual do shell não é afetado e é retido nos comandos subsequentes.

No seu caso, você gostaria de algo como:

env PATH=/sbin:$PATH command

Observe que env é um comando externo, portanto variáveis e aliases não-exportados não estão acessíveis enquanto o command está sendo executado.

    
por 16.12.2016 / 02:10