Acontece que eu tive que source
do script em vez de apenas executá-lo e, em seguida, ele funciona do jeito que eu queria.
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.
Acontece que eu tive que source
do script em vez de apenas executá-lo e, em seguida, ele funciona do jeito que eu queria.
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