Defina temporariamente $ PATH para uma sessão de shell de peixe de um script

0

Eu quero colocar um par de diretórios para a variável $PATH temporariamente para que eu possa configurar um ambiente de desenvolvimento temporário que eu realmente não queira mudar o que outras sessões de peixes veem.

Portanto, quero ter um script setup-env.fish que preencha os caminhos adequados para o início de $PATH , para que eles tenham precedência.

Meu teste simples é

set -gx tool_dir "/home/jesse/sandbox/tools"
set PATH "$tool_dir/language/bin" $PATH
echo "Evnironment Set up"

Eu me certifiquei de que esses diretórios existam. Quando eu abro um shell e executo esse script, se eu, então, echo $PATH esse diretório não aparecer.

Eu entendo que há uma maneira de adicionar persistentemente um diretório a set -U fish_user_paths path $fish_user_paths que, então, é adicionado à variável global $PATH . Mas eu não quero isso. Se eu quiser mexer com algumas ferramentas diferentes, eu não quero muito as minhas variáveis de sistema. Prefiro apenas prefixar em $PATH e fechar o shell, se quiser. Eu li algumas das documentações sobre peixes e alguns problemas do github sobre como alterar $PATH e eu entendo que existem algumas variáveis que são tratadas diferentemente pelos peixes, então eu não tinha certeza se estava faltando alguma outra coisa aqui.

Se eu executar esses comandos no shell, ele funciona, mas quero que meu script faça mais e não quero digitar tudo nele.

Estou usando o peixe 2.7.1 no XUbuntu 16.04.

    
por Jesse 08.03.2018 / 16:09

2 respostas

1

Acontece que eu tive que source do script em vez de apenas executá-lo e, em seguida, ele funciona do jeito que eu queria.

    
por 08.03.2018 / 18:01
0

Eu acho que você pode mudar o escopo do fish_user_paths apenas no shell atual: Acredito que quando você sair desta sessão do fish, o valor universal dessa variável não será afetado.

set -g fish_user_paths "$tool_dir/language/bin" $fish_user_paths
    
por 08.03.2018 / 17:11