폴더를 입력 할 때 임시 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.