Há um grande problema e possivelmente um pequeno problema com sua chamada xterm. Primeiro - você não quer o & para embasar o script - é muito provável que ele faça exatamente o que você pediu e execute em segundo plano (efetivamente invisível - você pode vê-lo com ps ou jobs no shell em que você o iniciou; ps -A de qualquer lugar, etc. .).
Minha leitura da sua situação é que você está tentando gerar uma nova instância xterm e ter este script executado nela; e não fará isso em segundo plano (pelo menos visivelmente).
Em segundo lugar, você deve fornecer o caminho completo para my_script.sh, usar seu caminho completo e incluir o argumento no sinalizador -e inteiramente entre aspas, por exemplo, "/home/you/my_script.sh"
Isso pode não estar causando um problema aqui; Eu não sou positivo. Isso causará um problema em algum momento se você escrever scripts semelhantes no futuro, já que sem aspas você pode ser vítima de uma expansão inadvertida do bash.
Última nota - ao chamar um script bash de um shell bash, o #! / bin / bash é completamente desnecessário. É um bom hábito, e isso faz com que seja mais portátil - alguém vai pular sobre isso e dizer '#! / Usr / bin / env bash é mais portátil', e sim, é. Mas você não precisa que isso funcione, presumindo que você chame o script do bash (mas você deve sempre ter isso de qualquer maneira).