Bash:当前目录变量

Stu*_*Cat 91 bash

我要做的是找到当前工作目录并将其保存到变量中,以便我可以运行export PATH=$PATH:currentdir+somethingelse.:不完全确定他们是否有一个默认包含cwd的变量.

sam*_*hen 165

这会将当前工作目录的绝对路径保存到变量cwd:

cwd=$(pwd)
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你可以这样做:

export PATH=$PATH:$(pwd)+somethingelse
Run Code Online (Sandbox Code Playgroud)

  • 为什么不直接使用“$PWD”呢? (4认同)
  • 由于某种原因,如果我更改为另一个目录,这也会更新“cwd”变量。就像每次都调用 `pwd` 函数一样...... https://dpaste.de/Kn7F 我怎样才能避免这种情况? (2认同)
  • `$CWD` 可能是 shell 中的一个特殊(保留)环境变量。尝试使用不同的名称,例如 `$CWD_MY_VAR` (2认同)

ger*_*rdw 24

我的.bash_profile中有以下内容:

function mark {
    export $1=`pwd`;
}
Run Code Online (Sandbox Code Playgroud)

所以任何时候我想记住一个目录,我只需输入,例如在那里标记.

然后,当我想回到那个位置时,我只需在那里键入cd $

  • 为了解决路径中空格的问题,将```export $ 1 =`pwd````改为```export $ 1 ="`pwd`"```然后在调用这些路径时使用```cd" $ foo"```而不只是```cd $ foo``` (3认同)
  • 另见 [`cdable_vars`](/sf/answers/2788754251/) 只输入 `cd there` (2认同)

Piy*_*rma 14

当前工作目录变量,即完整路径 /home/dev/other

dir=$PWD
Run Code Online (Sandbox Code Playgroud)

打印完整路径

echo $dir
Run Code Online (Sandbox Code Playgroud)


mca*_*lex 6

对于相对答案,请使用.

测试:

$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir
Run Code Online (Sandbox Code Playgroud)

第一个ls将显示当前目录中的所有内容,第二个将显示根目录 ( /) 中的所有内容。


che*_*ner 5

你的任务有一个额外的$

export PATH=$PATH:${PWD}:/foo/bar
Run Code Online (Sandbox Code Playgroud)