関数を記述したい一般的な使用例があります。ファイルに関連するディレクトリにcdしたいことがよくあります。
私の現在のワークフローは次のようになります。
$ gem which rspec/core | xargs echo -n | pbcopy
$ cd *paste and delete end until direcory looks right*
注:gem which rspec/core
「/ Users / joshcheek / .rvm / gems / ruby-1.9.3-p125 / gems / rspec-core-2.10.0 / lib / rspec/core.rb」のように出力されます
私はそれをこのように見せたいです:
$ gem which rspec/core | 2dir 3
これにより、「/ Users / joshcheek / .rvm / gems / ruby-1.9.3-p125 / gems / rspec-core-2.10.0」に移動します(引数「3」を渡すと、「lib /rspec/」を削除するように指示されます。最後からcore.rb")
これは私がこれまでに得た中で最高です:
2dir() {
read dir
for i in $(seq 1 $1)
do
dir="${dir%/*}"
done
cd "$dir"
}
しかし、cdは関数のディレクトリを変更しますが、私のものではありません。エイリアスと交換しようとしましたが、無名関数を作成する方法や引数を渡す方法がわかりません。