Você precisa ter certeza de que a mudança de diretório acontece no shell atual, fazendo o sourcing (observe o .
antes de $HOME
):
function rnew { . $HOME/.dotfiles/railsnewapp.sh $1; }
É um shell embutido, de help .
:
.: . filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
Note que isso faz com que o script railsnewapp.sh seja executado no shell atual, as variáveis definidas no shellscript estarão disponíveis para o shell quando ele for finalizado.