我要做的就是找到当前的工作目录并将其保存到变量中,以便我可以运行export PATH=$PATH:currentdir+somethingelse
。我不确定它们是否具有默认情况下包含CWD的变量。
如何使用bash将当前目录保存在变量中?
这将当前工作目录的绝对路径保存到变量cwd
:
cwd=$(pwd)
在您的情况下,您可以做:
export PATH=$PATH:$(pwd)+somethingelse
我在.bash_profile中有以下内容:
function mark {
export $1=`pwd`;
}
所以每当我想记住一个目录时,我都可以输入,例如标记那里。
然后,当我想返回该位置时,我只键入 cd $
当前工作目录变量IE完整路径/home/dev/other
dir=$PWD
打印完整的路径
echo $dir
您的分配有额外的$
:
export PATH=$PATH:${PWD}:/foo/bar
对于相对答案,使用.
测试:
$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir
第一个ls
将向您显示当前目录中的所有内容,第二个将向您显示根目录中的所有内容(/
)。
在bash shell上,您可以非常简单地运行:
export PATH=$PATH:`pwd`/somethingelse
无需将当前的工作目录保存到变量...
另外一个变体:
export PATH=$PATH:`pwd`:/foo/bar
您可以使用Shell In-Build变量PWD
,例如:
export PATH=$PATH:$PWD+somethingelse
类似于mark
的解决方案,并检查了一些变量。我也不想使用$variable
,而是我在
使用保存DIR sdir myproject
保存文件夹/目录,然后使用goto dir gdir myproject
此外,请查看本机pushd and popd
的工作原理,它们将保存当前文件夹,这很方便地来回走动。在这种情况下,您也可以在gdir myproject
之后使用popd
,然后再次回去
# Save the current folder using sdir yourhandle to a variable you can later access the same folder fast using gdir yourhandle
function sdir {
[[ ! -z "$1" ]] && export __d__$1="`pwd`";
}
function gdir {
[[ ! -z "$1" ]] && cd "${!1}";
}
另一个方便的技巧是将两个pushd/popd和sdir和gdir组合在一起,然后在PushD中替换goto dir函数中的CD。这使您在跳到保存的文件夹时也可以飞回以前的文件夹。
# Save the current folder using sdir yourhandle to a variable you can later access the same folder fast using gdir yourhandle
function sdir {
[[ ! -z "$1" ]] && export __d__$1="`pwd`";
}
function gdir {
[[ ! -z "$1" ]] && pushd "${!1}";
}
带有@gerardw ans的提示,我在.bashrc
中添加了以下内容,这也具有持久性:
function mark {
cur=`pwd`;
echo "export cur_project=$cur" > ~/.cur_project
. ~/.cur_project
}
. ~/.cur_project
alias curp='cd $cur_project'
因此,cur_project
变量可随时使用.bashrc
或BASH命令。
此alias curp='cd $cur_project'
是为了以防万一有人想在任何时间切换到当前项目。