폴더를 입력 할 때 임시 bash 별명 설정 입력하면 다음과 같은 사용자 지정

때로는 폴더에 입력 할 때 bash 별칭과 키 바인딩을 매우 사용자 정의하고 싶습니다 (CLI에서 많은 명령을 입력하는 데 사용되는 프로젝트 일 수 있음).

“projectAlpha /”와 같은 폴더를 입력하면 다음과 같은 사용자 지정 별칭이 필요합니다.

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

내가 생각했던 것보다 더 :

  • 별명 및 공통 명령을 보여주는 유용한 메시지를 표시합니다.
  • 내 프로젝트에 대한 일반적인 사용자 정의 키 바인딩 표시

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

오늘날 가장 좋은 방법은 무엇입니까?



답변

배쉬는 특별한 변수가 PROMPT_COMMAND내용이 때마다 실행 명령이 실행 된 다음과 같이 설정할 수를 :

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 리디렉션은이 경우 일부 쓸모없는 경고를 방지하기 위해 제공됩니다.