Seu script define uma variável mux
com seu valor sendo o grande comando mkvmerge
que você colou, literalmente com todas as aspas duplas e tudo mais: observe como as aspas duplas são escapadas para que sejam incluídas literalmente em a string.
Depois disso:
"$mux"
Que tenta executar um comando com o nome do conteúdo dessa variável, espaços e aspas e tudo. Como não há comando chamado "/usr/bin/mkvmerge" -o "test.mkv" "--default-track"
etc ..., você recebe o erro.
Tem certeza de que essa linha não deveria ser essa?
eval "$mux"
... que analisaria o conteúdo de $mux
como uma linha de comando do shell, interpretando assim todos esses espaços e aspas duplas como sintaxe do shell em vez de tratá-lo literalmente?
Ou muito mais simplesmente ... apenas execute mkvmerge
com todos os argumentos corretos sem primeiro criar um comando entre aspas e colocá-lo em uma variável e depois executar a variável como um comando.