Bash 쉘 스크립트에서 .bashrc 함수 호출

Bash 쉘 스크립트에서 .bashrc 함수 호출

어느 것이 어느 것인지 추적할 수 있도록 터미널 탭의 이름을 지정할 수 있기를 원합니다. 이 기능을 찾았습니다 (여기) 그리고 그것을 내 안에 넣으세요 .bashrc:

function set-title() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  TITLE="\[\e]2;$*\a\]"
  PS1=${ORIG}${TITLE}
}

이제 탭 이름을 호출하면 set-title my new tab name탭 이름이 예상대로 "새 탭 이름"으로 변경됩니다. 문제는 새 탭을 열고 set-title. 내가 시도하는 방식은 다음과 같습니다.

gnome-terminal --geometry=261x25-0+0 --tab -e "bash -c 'set-title tab1; sleep 10'" --tab -e "bash -c 'set-title tab2; sleep 10"

그러나 이제 다음과 같은 오류 메시지가 나타납니다.

bash: set-title: command not found

나는 이것이 아직 기능을 이해하지 못하는 새로운 그놈 탭과 관련이 있다고 생각합니다 .bashrc.

어떻게 작동하게 할 수 있나요?

답변1

함수를 사용하는 순간 set-title이 함수를 이용해 명령어를 생성할 수 있으므로 set-title()추가한 함수를 삭제 ~/.bashrc하고 파일을 생성합니다 /usr/local/bin/set-title.

#!/bin/bash
echo -ne "\033]0;$1\007"

chmod를 추가합니다 . 터미널을 다시 연 후 다음 을 chmod +x /usr/local/bin/set-title통해 이 명령을 사용할 수 있습니다 .set-title TEST/usr/local/bin/$PATH

그런 다음 다음을 통해 새 탭을 만들 때 사용할 수 있습니다.

gnome-terminal --geometry=261x25-0+0 \
    --tab -e "bash -c 'set-title TAB1; sleep 10'" \
    --tab -e "bash -c 'set-title TAB2; sleep 10'"

/usr/local/bin/해당 파일이 없으면 $PATHset-title 명령의 절대 경로를 사용해 볼 수 있습니다.

--tab -e "bash -c '/usr/local/bin/set-title TAB1; sleep 10'"

답변2

.bashrc, .bash_profile, .profile 등의 init 스크립트를 실행하려면 --login해당 옵션으로 gnome-terminal을 시작하십시오.

관련 정보