我要做的是找到当前工作目录并将其保存到一个变量中,这样我就可以运行export PATH=$PATH:currentdir+somethingelse
. 我不完全确定他们是否有一个默认包含 cwd 的变量。
如何使用 Bash 将当前目录保存在变量中?
这会将当前工作目录的绝对路径保存到变量中cwd
:
cwd=$(pwd)
在你的情况下,你可以这样做:
export PATH=$PATH:$(pwd)+somethingelse
我的 .bash_profile 中有以下内容:
function mark {
export $1=`pwd`;
}
所以任何时候我想记住一个目录,我都可以输入,例如标记那里。
然后当我想回到那个位置时,我只需输入cd $there
当前工作目录变量,即完整路径 /home/dev/other
dir=$PWD
打印完整路径
echo $dir
对于一个相对的答案,使用.
测试:
$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir
第一个ls
将显示当前目录中的所有内容,第二个将显示根目录 ( /
) 中的所有内容。
你的作业有一个额外的$
:
export PATH=$PATH:${PWD}:/foo/bar
在 BASH shell 上,您可以非常简单地运行:
export PATH=$PATH:`pwd`/somethingelse
无需将当前工作目录保存到变量中...
另一种变体:
export PATH=$PATH:\`pwd`:/foo/bar
您可以使用 shell in-build variable PWD
,如下所示:
export PATH=$PATH:$PWD+somethingelse
类似于mark
通过一些变量检查的解决方案。此外,我更喜欢不使用$variable
,而是使用我保存在下面的相同字符串
使用 save dir 保存您的文件夹/目录sdir myproject
,然后使用 goto dir 返回该文件夹gdir myproject
另外检查本机的工作,pushd and popd
他们将保存当前文件夹,这对于来回移动很方便。在这种情况下,您也可以使用popd
aftergdir myproject
并再次返回
# 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}";
}