Esse "ambiente" em que o script "coloca você" é uma nova instância do seu shell. E em vez de simplesmente chamar gst-head sem um parâmetro, você deve passar os comandos como argumentos! Você pode ver essa parte no roteiro?
# if we got a command, run it, else start a shell
if test ! -z "$1";
then
$@
exit $?
fi
Eu acho que você deveria tentar fazer uso disso. BTW, se você quiser iniciar um shell a todo custo, então você não será capaz de interagir com ele a menos que você use esperar, de alguma forma (seja um script standalone expect ou embutido em um shell script).