"alias" 명령을 통해 매개변수를 전달할 수 있습니까? [복사]

"alias" 명령을 통해 매개변수를 전달할 수 있습니까? [복사]

alias 명령을 사용하여 매개변수를 전달할 수 있는지 알고 싶습니다.

예를 들어:

alias d="dmesg|grep -iw usb|tail -5" 

이제 d는 마지막 5줄을 인쇄합니다. d를 사용하여 다른 행 수를 인쇄하려면 d에 대한 별칭 명령 선언을 다시 변경해야 합니다.

줄 수를 변경하기 위해 선언을 다시 입력할 필요가 없도록 alias 명령의 선언을 수정할 수 있는 방법이 있습니까? d의 별칭을 선언할 때 행 번호를 매개변수로 전달하는 것과 같나요? 아니면 이 문제를 해결할 수 있는 다른 방법이 있나요?

답변1

"별칭"을 통해 매개변수를 전달할 수 있나요?

아니요. 별칭은 간단한 문자열 대체입니다.

기능을 사용하세요.

d(){
   dmesg|grep -iw usb|tail -"$1" 
}

답변2

이 경우 - 예, 인수가 마지막 인수이므로 예외를 만들 수 있습니다.

alias d='dmesg | grep -iw usb | tail'
d -5

작동해야합니다.

답변3

어떤 종류의 쉘을 사용합니까? zsh에서는 다음과 같이 매개변수를 전달할 수 있습니다.

d () {
    dmesg|grep -iw usb|tail -$1
}

별칭은 항상 짧은 문자열을 긴 문자열로 대체합니다.

관련 정보