Bash: 마지막 N 명령 반복

Bash: 마지막 N 명령 반복

Bash에서는 마지막 명령을 반복하거나 예를 들어 !!마지막 명령에서 세 번째 명령을 입력하여 반복할 수 있습니다.!-3

!-1; !-2; !-3명시적으로 입력 하지 않고 마지막 3개의 명령을 반복하는 빠른 방법이 있습니까 ?

답변1

fc -N -1

-N반복하려는 마지막 N 명령은 어디에 있습니까?

그러면 마지막 N개의 명령이 포함된 편집기가 열립니다. 필요에 따라 명령을 편집할 수 있으며 편집기를 닫으면 명령이 순서대로 실행됩니다.

답변2

이 문제를 뒤집어서 이전 3개의 명령을 그룹화할 수도 있습니다. 예를 들면 다음과 같습니다.

echo 1; echo 2; echo 3

그러면 잘 쓰실 겁니다 !!.

답변3

좋아, 이것은 당신이 기대했던 것과는 다르지만 작동합니다:

history | fgrep -v history | tail -3 | sed 's_^ *__' | cut -f 2- | bash

이를 위한 함수를 만들 수 있습니다:

myFunc(){
    history | egrep -v 'history|myFunc' | tail ${1} | sed 's_^ *__' | cut -f 2- | bash
}

따라서 다음과 같이 호출할 수 있습니다.

myFunc -3     

관련 정보