バックグラウンド:
この質問は、bash スクリプトまたはエイリアスで cd コマンドを使用することに関するものです。
ここに関連する SO の質問があります: bash シェル スクリプトで "cd" が機能しないのはなぜですか?
問題:
引数を渡すと、ディレクトリへのパスを stdout に送信する「foopath」という bash プログラムがあるとします。たとえば、
$> /usr/bin/foopath 1998 ## returns /some/long/path/here/1998
$> /usr/bin/foopath 80817 ## returns /totally/different/path/80817/files
foopath プログラムは単にルックアップを行い、ユーザーが渡した引数に基づいて見つけることができる最も近いパスを返します。
質問:
1) .bash_profile で関数とエイリアスを作成して、ユーザーが次のことができるようにするにはどうすればよいでしょうか。
- 1a) type
foo 1998
またはfoo 80817
(foopath コマンドの短縮目標) - 1b)
cd foo 1998
またはcd foo 80817
(ディレクトリ変更の目標)を使用してディレクトリを変更する - 1c) コマンド プロンプトからディレクトリを変更します (単なるサブシェルのみの目標ではありません)。
落とし穴
上記の 1c の目的のために、この一見単純な作業は面倒です。つまり、関数/エイリアスは、関連する SO 投稿の例に示されているように、インタラクティブに使用できる必要があります。.