Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 对部分完整路径使用环境变量_Linux_Bash - Fatal编程技术网

Linux 对部分完整路径使用环境变量

Linux 对部分完整路径使用环境变量,linux,bash,Linux,Bash,我如何创建一个环境变量(可能不是正确的词?)作为很长路径的快捷方式?然而,我不希望它是完整的路径。我知道如何在bashrc中设置绝对路径,但我想要的是: cd $MYPATH/further/down/path/ 如何设置以这种方式使用的$MYPATH?每当我尝试用谷歌搜索时,所有返回的都是我不想要的完整路径的别名 编辑#1)我希望每个新终端会话的路径都是持久的。因此,我正在寻找一个命令来放入bashrc。执行别名MYPATH=~/my/path不起作用。我确信有一个我不知道的简单命令可以满足

我如何创建一个环境变量(可能不是正确的词?)作为很长路径的快捷方式?然而,我不希望它是完整的路径。我知道如何在bashrc中设置绝对路径,但我想要的是:

cd $MYPATH/further/down/path/
如何设置以这种方式使用的
$MYPATH
?每当我尝试用谷歌搜索时,所有返回的都是我不想要的完整路径的别名


编辑#1)我希望每个新终端会话的路径都是持久的。因此,我正在寻找一个命令来放入bashrc。执行别名MYPATH=~/my/path不起作用。我确信有一个我不知道的简单命令可以满足我的要求。

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

这完全按照您的想法工作。如果你定义

export MYPATH=/home/user
然后你可以像这样使用它

cd $MYPATH/further/down/path/
在所有shell中,从定义变量的shell的子级开始。如果您想使其持久化,您可以将其放在profile或bashrc脚本中,因此在每次登录时都会设置它

注意:如果要在变量后连接字母,则必须使用以下命令:

cd ${MYPATH}2/other
最后,如果它包含空格,引用变量也没有什么坏处(但不要为此使用
'singlequotes'
):


如果将
MYPATH
设置为所需的路径,那么会出现什么问题<代码>cd将起作用,因为bash计算env。vars。。。不清楚的。。。请进一步解释。除了CDPATH,您还可以对经常访问的内容使用alias
alias work=cd/…
谢谢!出口,以前从未使用过!这正是我想要的:)
export
仅用于设置子进程将使用的变量的值,而不仅仅是当前shell。@chepner是的,我默认包括它,因为有子shell并不少见
cd "${MYPATH}/test"