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 등의 초기화 스크립트를 실행하려면 --login옵션을 사용하여 gnome-terminal을 시작하십시오.

관련 정보