Bash: current directory variable
我要做的是找到当前的工作目录并将其保存到一个变量中,这样我就可以运行export PATH=$PATH:currentdir+somethingelse。:s不完全确定它们是否具有默认情况下包含CWD的变量。
- .点应该起作用。
- 所以要将它保存到变量中,我需要执行mydir=。?
- 是的,刚刚用mydir=测试过。那么ls$mydir——但是它是相对的,所以无论你在哪里运行它,它都是pwd。
- 谢谢!希望这对我有用
- ${PWD}是怎么不起作用的?
- 哦,我有一些空间。T.T.普华永道应该有效。哈哈。…哎哟!
这将当前工作目录的绝对路径保存到变量cwd中:
在您的情况下,您可以这样做:
1
| export PATH=$PATH:$(pwd)+somethingelse |
- 出于某种原因,如果我改为另一个目录,这也会更新cwd变量。就像每次调用pwd函数…dpaste.de/kn7f我该如何避免?
- $CWD可能是shell中的一个特殊(保留)环境变量。改为使用其他名称,如$CWD_MY_VAR。
- 它只是一个占位符名称。我的变量叫做OLD_PWD。
- 使用反勾号也一样。
我的.bash_配置文件中有以下内容:
1 2 3
| function mark {
export $1=`pwd`;
} |
所以每当我想记住一个目录时,我都可以输入,例如在那里标记。
当我想回到那个地方的时候,我只需要在那里输入cd$
- 但是对于有空间的路径,例如"google drive",要读取整个路径,必须执行cd"$foo"。
- 为了解决路径中的空间问题,将export $1=`pwd` 改为export $1="`pwd`" ,然后在调用这些路径时,使用cd"$foo"而不是仅使用cd $foo。
- mermergeoinfo:严格地说,不需要export $1="`pwd`"中的引号,因为分词不会发生在任务的右侧,尽管引用扩展名很好地习惯了。
- 另见cdable_vars至仅键入cd there。
你的任务有一个额外的$:
1
| export PATH=$PATH:${PWD}:/foo/bar |
对于相对答案,使用.。
测试:
1 2 3 4
| $ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir |
第一个ls将显示当前目录中的所有内容,第二个将显示根目录(/中的所有内容。
还有一个变种:
1
| export PATH=$PATH:\`pwd`:/foo/bar |
当前工作目录变量ie full path/home/dev/other
打印完整路径
您可以在构建变量PWD中使用shell,如下所示:
1
| export PATH=$PATH:$PWD+somethingelse |