2016-11-12 207 views
-1

我将如何创建一个环境变量(也许这不是正确的字?)使用环境变量作为很长路径的快捷方式使用?但是,我不希望它成为完整的路径。我知道如何设置的绝对路径中的.bashrc但我想是这样的:全路径的一部分

cd $MYPATH/further/down/path/ 

如何设置$MYPATH以这种方式使用?每当我尝试谷歌这一切回来的是我不想要的完整路径的别名。

编辑#1)我想要的路径,对于每个新的终端会话持久性。所以我正在寻找一个命令放在bashrc中。做alias MYPATH=~/my/path不起作用。我确信有一个简单的命令,我只是没有意识到这是我想要的。

+0

如果你将'MYPATH'设置为你想要的路径,那有什么问题? 'cd'将工作,因为bash评估env。变量...不清楚...请[编辑]更好地解释。 –

+0

除了CDPATH,你还可以使用别名,你经常访问的东西'别名工作= CD/...' – eckes

回答

1

这与您认为的完全相同。如果定义

export MYPATH=/home/user 

那么你可以使用它像

cd $MYPATH/further/down/path/ 

在所有shell启动的,你所定义的变量外壳的孩子。如果你想让它持久化,你可以把它放在profile或bashrc脚本中,所以它在每次登录时设置。

注意:如果你要连接的变量之后字母,你将不得不使用这样的:

cd ${MYPATH}2/other 

最后,如果它包含它不会伤害引用变量(但不使用'singlequotes'为空白这个):

cd "${MYPATH}/test" 
+0

谢谢!出口,以前从未使用过!这正是我正在寻找的:) – Twitchykid

+0

'export'只需要设置一个* child *进程将使用的变量的值,而不仅仅是当前的shell。 – chepner

+0

@chepner是的,我默认包含它,因为它有一个孩子的外壳并不罕见 – eckes

1

CDPATH包含当尝试解析用作cd的参数的相对目录时应该用作起点的目录列表。例如,

CDPATH=/a/b/c/d/e:/a/b/c/f/g 

cd bin 

如果bin不在当前工作目录的目录,bash将首先尝试改变/a/b/c/d/e/bin,然后/a/b/c/f/g/bin