Existe uma maneira de abrir um novo terminal na linha de comando e executar um comando nesse novo terminal (em um Mac)?
por exemplo, algo como:
Terminal -e ls
onde ls
é executado no novo terminal.
macos
command-line
terminal
zlog
fonte
fonte
Respostas:
Isso abre um novo terminal e executa o comando "echo hello" dentro dele.
fonte
osascript -e 'tell app "Terminal" to do script "echo hello"'
"$@"
shell, mas no script osa?Você pode fazer isso de uma maneira indireta:
Os scripts do shell que possuem a extensão
.command
e são executáveis podem ser clicados duas vezes para executar dentro de uma nova janela do Terminal. O comandoopen
, como você provavelmente sabe, é equivalente a clicar duas vezes em um objeto Finder, portanto, este procedimento acaba executando os comandos no script dentro de uma nova janela do Terminal.Ligeiramente torcido, mas parece funcionar. Tenho certeza de que deve haver uma rota mais direta para isso (o que você realmente está tentando fazer?), Mas isso me escapa agora.
fonte
Você precisa do ruby 1.9 ou precisará adicionar uma linha
require 'rubygems'
antes que outros o exijam e não se esqueça de instalargem rb-appscript
.Eu nomeei esse script
dt
(guia dup), para que eu possa executar apenasdt
para abrir a guia na mesma pasta oudt ls
também para executar ols
comando there .fonte
Isso funciona, pelo menos no Mountain Lion. Ele inicializa um shell interativo toda vez, embora você possa substituí-lo após o fato, invocando-o como "macterm exec your-command ". Armazene isso em bin / macterm em seu diretório pessoal e chmod a + x bin / macterm:
fonte
Eu faria isso com AppleScript. Você pode simplificá-lo usando o comando osascript. Seu script seria algo como:
Se você só vai acessá-lo no terminal, pode omitir tudo, exceto a declaração do meio. Se você deseja uma nova janela em vez de uma nova guia, substitua a tecla t por n.
Não sou um AppleScripter experiente o suficiente para saber como obter argumentos de linha de comando e redigitá-los na nova janela, mas tenho certeza de que é possível e não muito difícil.
Além disso, acho que isso funciona e não posso testar agora, mas tenho certeza de que você pode iniciar um shell script com alguma variante em #! / Usr / bin / osascript -e e salvá-lo como executável como você quiser. O que, pelo menos na minha cabeça, permitiria digitar algo como $ runinnewterm ls / Applications
fonte