Script OSX bash para ejecutar una vez en Terminal.app abierta

Script OSX bash para ejecutar una vez en Terminal.app abierta

Estoy usando OSX en una Mac y uso Terminal con bastante frecuencia. He creado algunos scripts de inicio que se ejecutan en el shell abierto con el .bash_profilearchivo. Sin embargo, me gustaría poder ejecutar uno de ellos solo al abrir la primera sesión de Shell cuando inicio la aplicación Terminal. No puedo entender cómo hacer que se inicie solo una vez en la aplicación Terminal abierta (se abrió el primer shell bash) pero no en los nuevos shells abiertos posteriormente.

Respuesta1

Así es como lo acabo de hacer:

Agregué esto a.bash_profile

# Only do this in the first terminal opened
termsOpen=$(who | grep 'ttys' | wc -l)

if (( $termsOpen < 2 )); then
    echo "This is echoed in the first tty opened only"
fi

Entonces, al iniciar la terminal por primera vez, obtengo este resultado:

Last login: Mon Sep 26 08:30:42 on ttys001
This is echoed in the first tty opened only

Cuando abro otra terminal (y por lo tanto tengo dos ventanas de terminal abiertas al mismo tiempo) obtengo este resultado:

Last login: Mon Sep 26 08:33:43 on ttys000

**Cómo funciona:**
Cada vez que se abre una nueva ventana de terminal, se obtiene `.bash_profile`. Este comando
who | grep 'ttys' | wc -l

simplemente cuenta el número de ventanas de terminal que están abiertas. Si son inferiores a 2 (en otras palabras, solo hay una ventana de terminal activa), entonces haga ecoThis is echoed in the first tty opened only



Información de la versión:

Versión de OS X: 10.11.5

bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)

información relacionada