Um truque que eu uso para a estrutura de criação de subpacotes para um produto é usar um sub-shell.
Para o bash, você pode criar um script de shell como este:
#!/bin/bash
export PROJECT_DIRECTORY=$(pwd)
exec bash --rcfile $HOME/.project-bashrc
Então, em $HOME/.project-bashrc
, você coloca algo assim:
source $HOME/.bashrc
export HISTFILE="${PROJECT_DIRECTORY}/.bash_history"
cd "${PROJECT_DIRECTORY}"
Isso também permite personalizar o prompt no arquivo .project-bashrc
, o que pode ser útil.
Não sei como fazer o mesmo em zsh
. Você teria que substituir a variável ZDOTDIR
, eu acho. Mas seria semelhante.
Ciao!