Detectando aplicação de terminal usada (iTerm2)

1

Alguém pode detectar qual aplicativo de terminal está sendo usado? Eu quero o aplicativo real, não o termo env na pergunta.

Gostaria de detectar iTerm 2 / Terminal.app para poder definir mapeamentos de teclado específicos do OSX, caso contrário o PC.

(Veja ALT + seta movendo entre as palavras em zsh e iTerm2 )

    
por Mikko Ohtamaa 22.05.2012 / 14:41

2 respostas

0

Você precisa encaminhar o SSH para as variáveis de ambiente locais, conforme explicado aqui:

link

    
por 23.05.2012 / 16:09
0

Eu fiz o seguinte script:

#!/bin/bash

pid=$$ # Current PID
ps -f $$ | head -n 1 # Show the header of ps
while [ $pid -gt 0 ]; do # No more parent when we reach 0 (the kernel)
        ps -f $pid | tail -n +2 # ps current pid and remove header
        pid=$(ps -o ppid $pid|tail -n 1) # Get parent pid
done

Leva o PID atual ( $$ no bash) e recebe recursivamente o PID pai até chegarmos a 0 (que é o kernel), imprimindo a saída ps -f ao longo do caminho (e um cabeçalho para iniciar, com ps -f | head -n 1 )

Duas limitações que consigo pensar:

  1. Se for executado por SSH, o pai será sshd e não o aplicativo gráfico do terminal.
  2. Se executado em um script separado, ele também imprimirá esse script.

No entanto, você deve conseguir grep de sua saída e detectar se um dos processos pai é iTerm.app ou Terminal.app quando executado localmente.

    
por 15.07.2016 / 15:06