Seu erro específico é causado por não usar a --execute
opção corretamente. Se você olhar o trecho da página de manual abaixo, notará que --execute
não possui um sinal de igual listado como parte da sintaxe, pois ele simplesmente executa o restante da linha de comando. Um exemplo de uso correto seria:
gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'
NOTA IMPORTANTE: O
uso cd
é um pouco especial, de qualquer maneira. cd
não é como a maioria dos comandos - ele não inicia um binário / executável próprio. É interpretado diretamente por bash
(ou qualquer shell que você esteja usando). Portanto, tentar invocar cd
não concorda com os sinalizadores --execute
e -x
(que parecem querer gerar diretamente um processo filho). O mesmo problema ocorrerá (verifiquei) com outros comandos que são processados diretamente pelo bash
like home
. Mesmo se usado corretamente, sem o sinal de igual, ele ainda resultará em um erro: "Arquivo ou diretório não encontrado". Portanto, usar a --working-directory=[DIRECTORY]
opção é sua melhor aposta para fazer o que você deseja fazer.
OUTRA NOTA IMPORTANTE:
Mesmo que não fosse esse o caso, você ainda teria problemas. O problema está em tentar usar a --execute
opção quando você realmente pretende o significado da --command
opção. Na documentação da página de manual, ele afirma especificamente
-e, --command = STRING
Execute o argumento para esta opção dentro do terminal.
-x, --execute
Executa o restante da linha de comando dentro do terminal.
(ênfase minha)
Em outras palavras, provavelmente não será analisado da maneira que você pensa que deveria. O uso --execute
evita que você passe outras opções para gnome-terminal
.
Um trecho de um dos meus próprios scripts, onde executo vários comandos em guias separadas (nomes alterados para minha privacidade / segurança):
gnome-terminal --tab --command="ssh cjohnson@GLaDOS" --tab --command="ssh drattman@GLaDOS"
(Aliás, tentar usar o --command
sinalizador com cd
ou home
também resultará no erro familiar "Não existe esse arquivo ou diretório".)
Espero que não demore muito. Eu só estou tentando ser completo.