Como o usuário @muru diz, não é possível fazer isso porque você já deixou a sessão do shell para trás quando chegar na #!
-line.
No entanto, dependendo do que seus arquivos de shell fazem, pode haver outra solução.
Eu estou supondo que eles definem variáveis de ambiente que você usa para algum projeto.
Vamos chamar um projeto subtool
(porque é um projeto que eu tenho). Então você poderia ter um script que configura um ambiente de shell para projetos, project-env
por exemplo:
#!/bin/bash
PROJECT="$1"
PROJECT_ROOT="$HOME/projects/$PROJECT"
cd "$PROJECT_ROOT" || exit 1
source "$PROJECT.env"
export PS1="[$PROJECT: \W] \$ "
exec bash -i
Executar com:
$ ./project-env subtool
Isto irá automaticamente cd
para a subpasta de projeto abaixo de $HOME/projects
, leia um arquivo de ambiente de projeto chamado subtool.env
neste caso (no qual você inicializa variáveis), dê um prompt de linha de comando para o projeto e deixe você em uma sessão bash
interativa:
[subtool: subtool] $
Quando seu trabalho terminar, basta exit
.
Isso também tem o benefício de isolar o ambiente do projeto da sua sessão de shell de login "comum" e de outros projetos.