폴더 진입 시 임시 bash 별칭 설정

폴더 진입 시 임시 bash 별칭 설정

때로는 폴더에 들어갈 때 매우 맞춤화된 bash 별칭과 키 바인딩을 사용하는 것을 좋아합니다(아마도 CLI에서 많은 명령을 입력하는 데 익숙한 프로젝트의 경우).

"projectAlpha/"와 같은 폴더를 입력할 때 다음과 같은 사용자 정의 별칭이 필요하다고 가정해 보겠습니다.

  • alias doTaskX='./app arg1 arg2...|filter arg1 arg2...'
  • ...

내가 생각한 것은 그게 전부가 아니었습니다.

  • 별칭과 일반적으로 사용되는 명령을 보여주는 유용한 메시지를 표시합니다.
  • 내 프로젝트에 대한 몇 가지 일반적인 사용자 정의 키 바인딩을 보여줍니다.

그러나 프로젝트 루트를 떠나자마자 이러한 설정은 사용할 수 없게 됩니다.

오늘날 가장 좋은 접근 방식은 무엇입니까?

답변1

PROMPT_COMMANDBash에는 매번 내용이 실행되는 특수 변수가 있습니다.뒤쪽에명령이 실행되므로 다음과 같이 설정할 수 있습니다.

PROMPT_COMMAND='[[ "$PWD" = /tmp ]] && { alias ll=ls; echo "Remember: ll=ls"; } || { unalias ll 2>/dev/null; }'

이제부터는 /tmp디렉터리에 들어갈 때마다 별칭이 생성되며, 다른 모든 디렉터리에서는 삭제됩니다.ll


아마도 더 실용적인 것은 하나의 함수(예: )에서 모든 별칭과 기타 항목을 수집하고 필요에 따라 실행할 수 있는 makealias다른 함수에서 모든 비별칭을 수집하는 것입니다.makeunalias

PROMPT_COMMAND='[[ "$PWD" = /tmp ]] && makealias || makeunalias 2>/dev/null'

이 경우 쓸모없는 경고를 방지하기 위해서만 stderr 리디렉션이 존재합니다.

관련 정보