Em zsh, um subshell criado por meio de parênteses pode ter um rcfile originado para usar comandos que podem ser aliases, disponíveis apenas quando diretórios específicos são adicionados a PATH
, etc .:
~ » /bin/zsh -c "workon"
zsh:1: command not found: workon
------------------------------------------------------------
~ » /bin/zsh -c "source ~/.zshrc; workon"
env1
env2
env3
... (expected output)
No entanto, o mesmo não acontece com o bash:
~ » /bin/bash -c "workon"
/bin/bash: workon: command not found
------------------------------------------------------------
~ » /bin/bash -c "source ~/.bashrc; workon"
/bin/bash: workon: command not found
------------------------------------------------------------
~ » bash
sean@helium:~$ workon
env1
env2
env3
... (expected output)
Existe alguma maneira de uma subshell bash poder criar um rcfile?
Para obter uma resposta inicial sobre as respostas do "problema X-Y", isso é para um script chamado in
:
#!/bin/zsh
(source ~/.zshrc; cd $1; ${@:2})
Eu tenho um diretório cheio de projetos (usando git) onde eu frequentemente esqueço se eu deixei algo não comprometido, então in
me permite escrever rapidamente $ in ProjectDir/ git status
, ao invés de $ (cd ProjectDir; git status)
(o primeiro se sente mais fácil de digitar que o último).
De preferência, eu gostaria que esse script fosse utilizável com o bash (é por isso que eu pergunto, mesmo que ele funcione atualmente com o zsh).