Bashを使用して現在のディレクトリを変数に保存しますか?


110

私がやろうとしているのは、現在の作業ディレクトリを見つけて変数に保存し、を実行できるようにすることexport PATH=$PATH:currentdir+somethingelseです。デフォルトでcwdを含む変数があるかどうかは完全にはわかりません。

Bashを使用して現在のディレクトリを変数に保存するにはどうすればよいですか?


変数に保存するには、mydir =を使用します。?
Stupid.Fat.Cat

1
yupはmydir =でテストされました。次にls $ mydirですが、これは相対的であるため、どこから実行してもpwdになります
mcalex

ありがとう!これが私にとって
うまくいく

ああ、スペースがありました。tt $ {PWD}は機能するはずです。はは。... whoops
Stupid.Fat.Cat

回答:


188

これにより、現在の作業ディレクトリの絶対パスが変数に保存されますcwd

cwd=$(pwd)

あなたの場合、あなたはただ行うことができます:

export PATH=$PATH:$(pwd)+somethingelse

1
何らかの理由で別のディレクトリに変更すると、cwd変数も更新されます。pwd毎回関数を呼び出しているように... dpaste.de/Kn7F どうすれば回避できますか?
tutuca 2013年

1
$CWDシェルの特別な(予約された)環境変数の場合があります。以下のような、代わりに別の名前を試してみてください$CWD_MY_VAR
サンプソン陳

バックティックの使用も同じです。
tutuca 2013年

1
なぜ使用しないの"$PWD"ですか?
leetbacoon、

28

私の.bash_profileには次のものが含まれています。

function mark {
    export $1=`pwd`;
}

したがって、ディレクトリを覚えておきたいときはいつでも、タイプするだけです。たとえば、そこにマークを付けます

次に、その場所に戻りたいときは、cd $ thereと入力します。


機能しますが、スペースのあるパス、たとえば「Googleドライブ」ではcd "$foo"、パス全体を読み取るために実行する必要があります
mercergeoinfo

3
パスの変更にスペースの問題を回避するためexport $1=`pwd` export $1="`pwd`" 、このようなパスが使用呼び出すときにとcd "$foo"ばかりするのではなくcd $foo
mercergeoinfo

mercergeoinfo:厳密に言えば、export $1="`pwd`"展開の引用は習慣として慣れるのに適していますが、割り当ての右側では単語分割が行われないため、での引用は必要ありません。
Larry

2
cdable_varsジャスト」と入力することも参照してくださいcd there
John Cummings

4

割り当てには追加があり$ます:

export PATH=$PATH:${PWD}:/foo/bar

3

以下のための相対的な答えは、使用.

テスト:

$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir

1つ目lsは現在のディレクトリのすべてを表示し、2つ目はルートディレクトリ(/)のすべてを表示します。



0

次のPWDように、シェルのビルド変数を使用できます。

export PATH=$PATH:$PWD+somethingelse

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.