man bash
说:
变量 CDPATH 定义包含 DIR 的目录的搜索路径。CDPATH 中的备选目录名称以冒号 ( ) 分隔
:
。
空目录名与当前目录相同。如果 DIR 以斜杠 (
/
) 开头,则不使用 CDPATH。
什么是“DIR”?
CDPATH 不是命令,对吧?它是搜索路径的变量名。
如果 DIR 以斜杠 ( /
) 开头,则不使用 CDPATH。
CDPATH="/home/walt/first:/usr/local/bin:/home/walt"
但在此 CDPATH 示例中,它以 ( /
) 开头。
什么是空目录名?
CDPATH="/home/walt/first:/usr/local/bin:/home/walt"
上面的例子中这就是我必须在终端上写的吗?
如果我CDPATH=
在终端上写入,它什么也不会返回......
答案1
什么是“DIR”?
如果你看看你引用这行代码的地方,man bash
你会看到它在上面的行中被定义(强调矿):
cd [-L|[-P [-e]] [-@]] [目录]
将当前目录更改为 dir。如果未提供 dir,则 HOME shell 变量的值是默认值。变量 CDPATH 定义包含 dir 的目录的搜索路径:
所以这意味着 dir 就是您要尝试进入的东西cd
。
CDPATH 不是命令,对吧?它是搜索路径的变量名。
正确的。
如果 DIR 以斜杠 (/) 开头,则不使用 CDPATH。[...] 但在此 CDPATH 示例中,它以 (/) 开头。
不,它不是在谈论内部/
。CDPATH="/home/walt/first:/usr/local/bin:/home/walt"
它谈论的是/
示例中的cd /usr
。
什么是空目录名?
空目录名是一个空字符串。考虑以下示例。空目录名是中间CDPATH="home/walt/first::/home/walt"
冒号 ( ) 之间的空内容。::
在上面的例子中(CDPATH="/home/walt/first:/usr/local/bin:/home/walt"
)这就是我必须在终端上写下的内容吗?
是的,看起来可行。
如果我在终端上写入 CDPATH= 它什么也不会返回。
是的,它不应该返回任何东西。bash 中的变量赋值不会产生任何终端输出。CDPATH="/home/walt/first:/usr/local/bin:/home/walt"
将值分配/home/walt/first:/usr/local/bin:/home/walt
给变量CDPATH
。