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 미만인 경우(즉, 하나의 터미널 창만 활성화됨) echoThis 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)

관련 정보