Como produzir a partir do terminal em um único comando 2 janelas emacs?

1

Estou tentando abrir duas janelas separadas / instâncias de emacs do terminal em um único comando. Eu tentei:

emacs &; emacs &

(erro: bash:syntax error near unexpected token ; e

emacs & && emacs &

(erro: bash:syntax error near unexpected token && mas ambas as formas produzem erros. Como posso produzir em um único comando 2 janelas do emacs para emergir?

    
por Vass 13.09.2018 / 23:31

1 resposta

3

Você precisa apenas de um único separador entre os comandos: ; ou & ou && etc, então tente

emacs & emacs &

Se você executar emacs &; emacs & , você iniciará o emacs em segundo plano e, em seguida, executará ; sem qualquer comando, por isso bash afirma que não espera esse separador ( syntax error near unexpected token ; ).

Erro semelhante que você obterá executando apenas ; :

bash$ > ;
bash: syntax error near unexpected token ';'

Nem todos os shell se comportam assim, por exemplo, em zsh , você pode até fazer

zsh$> ; ; ls; ; ls&; ls&; ; ls &; ;

sem nenhum problema (mas não ;; sem espaço intermediário), pois é um separador em si próprio, usado na instrução case ).

A outra coisa que você tentou, emacs & && emacs & , é ainda pior, pois o segundo comando (após && ) deve ser executado somente se o primeiro for concluído com êxito (é isso que o && faz). Mas, como nós executamos o primeiro comando em segundo plano, o shell não aguarda seu término, então essa condição não faz muito sentido. Mais uma vez: use apenas um único separador entre os comandos, command1 & command2 ou eventualmente command1 && command2 .

    
por 14.09.2018 / 00:12