2016-11-12 8 views
-1

非常に長いパスのショートカットとして使用する環境変数を作成するにはどうすればよいですか(正しい単語ではないかもしれません)。しかし、私はそれが完全な道であることを望んでいません。私はbashrcに絶対パスを設定する方法を知っているが、私がしたいことは何かのようである:完全パスの一部に環境変数を使用

cd $MYPATH/further/down/path/ 

がどのようにセットアップ$MYPATHこのように使用するのですか?私がこのためにGoogleにしようとするたびに、私は欲しくない完全なパスのエイリアスです。

edit#1)新しい端末セッションごとにパスを永続化したい。だから、私はbashrcに入れるコマンドを探しています。 alias MYPATH=~/my/pathを実行しても機能しません。私は、私が気にしていない簡単なコマンドがあると確信しています。

+0

あなたが望むパスに 'MYPATH'を設定した場合、何が問題なのですか? 'cd'はbashがenvを評価するので動作します。 vars ...不明なことを... [編集]良く説明してください。 –

+0

CDPATHの他に、 'alias work = cd/... 'によく訪れるものにエイリアスを使うこともできます。 – eckes

答えて

1

これはあなたの思う通りに機能します。あなたは

export MYPATH=/home/user 

を定義するなら、あなたはすべてのシェルで

cd $MYPATH/further/down/path/ 

のようにそれを使用することができますが、変数を定義し、シェルの子としてスタートしました。永続化したい場合は、プロファイルまたはbashrcスクリプトに入れます。そのため、ログインごとに設定されます。

NB:あなたは変数の後に文字を連結したい場合は、これを使用する必要があります:

cd ${MYPATH}2/other 

と、それは空白が含まれている場合、最終的には、変数を引用する傷つける(しかしため'singlequotes'を使用していけないしません。これは):

cd "${MYPATH}/test" 
+0

ありがとう!輸出、前にそれを使用したことはありません!これはまさに私が探していたものです:) – Twitchykid

+0

'export'は、現在のシェルだけでなく、*子プロセスで使用される変数の値を設定するために必要です。 – chepner

+0

@chepnerはい、子シェルを持つことは珍しくないので、デフォルトでインクルードしました – eckes

1

CDPATHには、引数として使用される相対ディレクトリを解決するときに開始点として使用するディレクトリのリストが含まれています(cd)。例えば、binもし

CDPATH=/a/b/c/d/e:/a/b/c/f/g 

cd bin 

は、現在の作業ディレクトリ内のディレクトリではありません、bashはその後/a/b/c/f/g/bin/a/b/c/d/e/binに最初に変更しようとします。

関連する問題