Quando você executa seu script, ele é executado em um shell diferente. Lá você muda o diretório local, mas quando ele termina, você retorna ao diretório original.
Você pode fazer um alias ou uma função (se precisar passar algum parâmetro).
alias ns3='cd ns3/ns3-allinone-3.19/ns-3.19'
deve funcionar para você. Coloque em seu ~/.bash_aliases se você tiver um. É um arquivo oculto (ele começa com . e está no seu diretório home ~ ). Se não, você pode adicionar um source ~/.alias como última linha do seu .bashrc e escrever todos os seus aliases nesse arquivo. Quando você trabalhar com outra máquina, poderá sempre copiar o .alias e adicionar uma única linha ao seu novo .bashrc .
Uma função
Hello() { echo "Hello " $1 " here I am for you" ; }
No prompt, você escreve Hello Adriano e o shell responderá Hello Adriano here I am for you . $1 para o 1º parâmetro $2 para o segundo ...