O seguinte funciona para mim onírico. Você pode usar isso no lugar da sua versão:
#!/bin/bash
gnome-terminal --tab --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0
Eu quero que um script abra várias guias em pastas diferentes.
Enquanto procurava, encontrei esta entrada, mas uma troca como visto abaixo abriu um Terminal com três abas na minha pasta pessoal. A mensagem de erro mostrou:
Failed to parse arguments: Unknown option --execute=cd /some/thing/
O script é assim:
#!/bin/sh
gnome-terminal --tab --execute="cd /some/thing/" \
--tab --execute="cd /home/" \
--tab --execute="cd /home/" \
exit 0
Uma variação com --working-directory="/ alguma / coisa /" também não ajudou. Você pode ver um erro?
O seguinte funciona para mim onírico. Você pode usar isso no lugar da sua versão:
#!/bin/bash
gnome-terminal --tab --working-directory="/var/www/" --tab --working-directory='/home/' --tab --working-directory='/home/'
exit 0
Seu erro específico é causado por não usar a opção --execute
corretamente. Se você olhar o trecho da página man abaixo, você notará que --execute
não possui um sinal de igual listado como parte da sintaxe, já que simplesmente executa todo o restante do comando linha. Um exemplo de uso correto seria:
gnome-terminal --execute play '/home/cjohnson/Still Alive.mp3'
NOTA IMPORTANTE:
Usar cd
é um caso especial, de qualquer forma. cd
não é como a maioria dos comandos - ele não inicia um binário / executável próprio. Ele é interpretado diretamente por bash
(ou qualquer shell que você esteja usando). Portanto, a tentativa de invocar cd
não concorda com os sinalizadores --execute
e -x
(que parecem querer gerar diretamente um processo filho). O mesmo problema ocorrerá (eu verifiquei) com outros comandos que são processados diretamente por bash
like home
. Mesmo se usado corretamente, sem o sinal de igual, ainda resultará em um erro: "Arquivo ou diretório não encontrado". Portanto, usar a opção --working-directory=[DIRECTORY]
é sua melhor aposta para fazer o que você deseja fazer.
UMA NOTA IMPORTANTE:
Mesmo que isso não acontecesse, você ainda teria problemas. O problema está em tentar usar a opção --execute
quando você realmente pretende o significado da opção --command
. Na documentação da página de manual, ele especifica especificamente
-e, --command = STRING
Execute o argumento para esta opção dentro do terminal.-x, --execute
Execute o restante da linha de comando dentro do terminal.
(ênfase minha)
Em outras palavras, provavelmente não vai analisá-lo da maneira que você acha que deveria. Usar --execute
impede que você passe mais opções para gnome-terminal
.
Um trecho de um dos meus próprios scripts em que 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"
(Incidentalmente, tentar usar o sinal --command
com cd
ou home
também resultará no erro familiar "Nenhum arquivo ou diretório").
Espero que isso não seja muito longo. Eu só estou tentando ser minucioso.
Tags command-line scripts