명령이 실행될 때 별칭을 설정하는 방법은 무엇입니까?

명령이 실행될 때 별칭을 설정하는 방법은 무엇입니까?

다른 개발자들도 좀 편리한 방법이 있었으면 좋겠습니다. 그러므로 나는 그들에게 별칭을 자동으로 설정하는 스크립트를 제공하고 싶습니다.

예를 들어, 이 명령은 grunt compileModule:[modulename]별칭을 cprev해당 명령으로 설정해야 합니다. 별칭을 설정한 후에도 명령이 실행되어야 합니다!

우리는 일반적으로 여러 날 동안 동일한 모듈에 대해 작업하므로 별칭에도 파일에 항목이 있어야 합니다 ~/.bashrc(이것이 주요 "기능"이므로 bash를 닫을 때마다 다시 입력할 때 전체 명령을 입력할 필요가 없습니다).

현재 마지막 명령 실행 등을 찾는 방법에 대한 많은 게시물이 있지만 history필요한 결과를 생성하기 위해 모든 정보를 정렬하는 방법을 찾을 수 없습니다.

에 대한 별칭을 만들려고 생각 중입니다 grunt.

그것은 마치

alias grunt='~/myScriptForAliasHistory.sh;grunt $1';

이것이 적절한가?

편집하다

이를 더 명확하게 설명하면 다음과 같습니다.

원래 명령은

grunt compileModule:[name]

수정 후에는 다음과 같아야 합니다.

하나만 하면 된다추가 단계, 전화를 걸 수 있도록동일한 기능~처럼

cprev

그리고 (동일한 매개 변수를 사용하여)

워크플로는 다음과 같습니다.

  1. 개발자는 새로운 모듈 작업을 시작합니다. 그것을 컴파일하기 위해 그는 grunt compileModule:[name].
  2. 동일한 개발자가 bash/pc/콘솔을 다시 시작해야 합니다. 이제 그는 전체 명령을 다시 작성하고 싶지 않고 단지 입력하고 cprev실행하기만 하면 됩니다 grunt compileModule:[name].
  3. 다음날 그는 모듈 작업을 시작하여 [anothername]다음을 실행합니다.grunt compileModule:[anothername]
  4. 지금 재부팅하면 명령이 cprev실행됩니다grunt compileModule:[anothername]

즉, 호출될 때마다 grunt compileModule현재 호출 인수로 별칭을 덮어써야 합니다.cprev

답변1

히스토리 확장을 사용하면 !별칭이나 함수 없이 이 작업이 수행됩니다.

$ grunt compileModule:[something]

$ # other things

$ !grunt

마지막 명령은 !grunt쉘이 명령줄 기록에서 해당 문자열로 시작하는 마지막 명령을 찾아 grunt실행하도록 합니다.

존재하다 bash:

!string

로 시작하는 기록 목록에서 현재 위치 이전의 최신 명령을 나타냅니다 string.

이는 쉘에 지속적인 기록(보통 설정을 통해 활성화됨)이 있는 경우 HISTFILE연속 쉘 세션에서도 작동하며 , 쉘에 따라 동시 세션에서도 작동할 수도 있습니다.

관련 정보