KornShell에서 매개변수를 사용하여 별칭을 만드는 방법

KornShell에서 매개변수를 사용하여 별칭을 만드는 방법

어떤 인수가 주어지면 해당 인수가 패턴으로 포함된 폴더를 찾는 별칭을 만들려고 합니다. 별칭을 호출해 보겠습니다 gohf.

gohf <some-pattern>이제 이 별칭 (예: ) 을 사용하겠습니다 gohf testing. 이제 이름에 "testing"이 포함된 폴더를 찾고 마지막 단계에서 해당 폴더로 이동하게 됩니다.

내가 생각할 수 있는 것은 다음과 같다.

alias gohf='cd `find . -type d | grep testing`';

위의 별칭은 모드가 항상 "testing"일 때 유효합니다. 별칭이 say 로 사용되는 경우 gohf game별칭이 이름에 게임이 있는 폴더로 이동하도록 하려면 어떻게 수정해야 합니까?

노트:

쉘: ksh

나는 입력하는 각 패턴에 대해 단 하나의 폴더만 있다고 가정합니다.

답변1

manatwork가 주석에서 말했듯이 인수를 더 잘 처리하려면 함수를 사용해야 합니다.

gohf(){
  cd $(find . -type d -iname "$1" | sed 1q)
}

find플래그를 사용하는 것과 동일한 작업을 수행하거나 결과를 파이프할 필요가 없습니다 . 그런 다음 첫 번째 "적중"(여러 개가 있는 경우)만 처리하도록 모든 것을 파이프합니다.grep-name-inamesedcd

여러 번의 "클릭"을 처리하려면 find다음을 수행해야 합니다.

gohf(){
  select dir in $(find . -name "$1" -type d)
  do
    cd $dir
    break
  done
}

관련 정보