Terminal.app이 열릴 때 한 번 실행되는 OSX bash 스크립트

Terminal.app이 열릴 때 한 번 실행되는 OSX bash 스크립트

저는 Mac에서 OSX를 사용하고 있으며 터미널을 자주 사용합니다. 파일을 사용하여 열린 쉘에서 실행되는 몇 가지 시작 스크립트를 작성했습니다 .bash_profile. 그러나 터미널 앱을 시작할 때 첫 번째 셸 세션이 열릴 때만 그 중 하나가 실행되도록 하고 싶습니다. 터미널 앱을 열었을 때(첫 번째 bash 셸이 열렸을 때) 한 번만 실행하는 방법을 알 수 없지만 이후에 열리는 새 셸에서는 실행할 수 없습니다.

답변1

방금 수행한 방법은 다음과 같습니다.

나는 이것을 추가했다.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

따라서 터미널을 처음 시작하면 다음과 같은 출력이 표시됩니다.

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

다른 터미널을 열면(따라서 두 개의 터미널 창이 동시에 열려 있는 경우) 다음과 같은 출력이 표시됩니다.

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

**작동 방식:**
새 터미널 창이 열릴 때마다 '.bash_profile'이 소스로 제공됩니다. 이 명령
who | grep 'ttys' | wc -l

단순히 열려 있는 터미널 창의 수를 계산합니다. 2보다 작은 경우(즉, 활성화된 터미널 창이 하나만 있는 경우) 에코됩니다.This is echoed in the first tty opened only



버전 정보:

OS X 버전: 10.11.5

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

관련 정보