O ponto complicado é escapar corretamente do $ em $? e de todas as aspas aninhadas. E isso é realmente um pesadelo quando você tem um ninho tão profundo:
-
cmdé definido como"..." - dentro de que há
konsole -e '...' - dentro de que há
bash -c "..." - dentro disso, há
echo '...'eread '...'
Além disso, você também precisa considerar as regras de escape do Sublime, o que faz escrever isso corretamente um verdadeiro pesadelo, e impossível de forma legível.
Em vez de tentar consertar isso,
Eu recomendo extrair o comando complexo em um script que usa $file_name e $file_base_name como parâmetros, assim:
"cmd" : ["/path/to/build.sh '$file_name' '$file_base_name'"],
Em seguida, você pode escrever /path/to/build.sh como qualquer script de shell,
livre das regras de análise do Sublime,
e fácil de testar de forma independente.