É possível pegar e armazenar o id da janela retornada de um terminal aberto através do applescript ou bash?

2

Eu tenho trabalhado neste "painel" para ajudar a controlar o meu ambiente de servidor localhost. Foi roteirizado em bin / bash para referência. Eu descobri recentemente que posso usar o comando bin "osascript" para executar um comando "AppleScript" -esque através do Terminal, e estou brincando com isso para incorporar no meu painel. Dessa forma, posso executar comandos e controlar meu servidor localhost através de uma janela, enquanto no segundo plano ele pode abrir tarefas separadas sem obstruir a janela principal.

Aqui está a minha principal questão sobre este conceito, notei que, após a execução de um comando osascript, ele retorna as seguintes informações: tab 1 do ID 11148 da janela.

Esta é a declaração bash do meu script .sh:

osascript -e "tell application \"Terminal\" to do script \"cd $devFolder;svn up\""

E esta é a saída que posso ver no meu terminal:

tab 1 of window id 11197

Originalmente, eu queria que apenas abrisse uma nova aba, mas estou bem com isso abrindo uma janela com a finalidade de apenas fazer com que funcione. Assim, como a minha pergunta afirma, é possível de alguma forma armazenar ou recuperar esse id janela da janela do terminal que acabou de ser criado? Permitindo-me interagir com essa janela específica e controlá-lo?

    
por ManBearPixel 11.11.2013 / 23:57

2 respostas

0

Do Editor AppleScript:

tell application "Terminal"
    set windowInfo to do script "echo \"hi user273298\""
    do script "echo \"hi adayzdone\"" in windowInfo
end tell

EDITAR

osascript -e '
tell application "Terminal"
    set windowInfo to do script "echo \"hi user273298\""
    do script "echo \"hi adayzdone\"" in windowInfo
end tell
'
    
por 12.11.2013 / 02:01
0

Adicione o ID da guia e da janela como um especificador in :

tab=$(osascript -e 'tell app "Terminal" to do script "uptime"');osascript -e 'tell app "Terminal" to do script "uptime" in '"$tab"

Você também pode usar in window 1 para executar um comando em uma janela existente:

osascript -e 'tell app "Terminal" to do script "uptime"';osascript -e 'tell app "Terminal" to do script "uptime" in window 1'

    
por 12.11.2013 / 20:04