KornShellでパラメータを使用してエイリアスを作成する方法

KornShellでパラメータを使用してエイリアスを作成する方法

引数が与えられたら、その引数がパターンとして含まれているフォルダを見つけるエイリアスを作成しようとします。エイリアスを呼び出してみましょうgohf

gohf <some-pattern>それでは、このエイリアス(例:)を使いましょうgohf testing。これで、名前に「testing」が含まれているフォルダが見つかり、最後のステップでそのフォルダに移動します。

私が考えることができるのは次のとおりです。

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

上記のエイリアスは、モードが常に「testing」の場合に有効です。エイリアスがsayとして使用されている場合、エイリアスをゲーム内gohf gameの名前のフォルダに移動さ​​せるにはどうすればよいですか?

ノート:

シェル:ksh

私は入力するパターンごとに1つのフォルダしかないとします。

ベストアンサー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
}

おすすめ記事