폴더를 입력 할 때 임시 bash 별명 설정


13

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

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

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

내가 생각했던 것보다 더 :

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

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

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


~ / .bashrc에서 "cd"에 대해 하나의 별명을 사용하고, 하나의 디렉토리에 입력하기 위해 하나의 별명을 사용하고 해당 디렉토리에서 숨겨진 .bashrc를 읽는 새 bash를 시작하는 것으로 생각되었습니다.
gzinho

답변:


14

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


타이, 내가해볼 게 +1 (내가 가능하다면)
gzinho

1
@ user3697611 자신의 질문에 대한 답변을 받기 위해 평판이 필요하지 않습니다. 답변 옆의 확인 표시를 클릭하십시오.
Barmar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.