As aspas duplas em torno de uma string analisada como um argumento significam que a string é executada como um processo filho, ou seja, seu conteúdo não afeta o processo pai.
Aspas simples não fazem nada para os caracteres entre elas, portanto, alterne aspas duplas para aspas simples em sua última linha, assim:
konsole --noclose -e 'bash -c commands'
(Sua função commands
não precisa de nenhuma aspas em torno dela). Se você estiver executando uma longa lista de comandos dessa maneira, recomendo o -x
flag que imprime comandos e exibe a ordem. Use konsole --noclose -e 'bash -cx commands'
para obter a seguinte impressão:
+ commands
+ cd ~/Yola
+ pwd
/home/Yola