我在教程中看到了创建新目录的命令:

mkdir my-new-project && cd $_

我知道mkdir my-new-project命令用于创建新目录,但是cd $_有什么作用?

最佳答案

$_扩展为上一个简单命令* 的最后一个参数,如果没有参数,则扩展为上一个命令。

mkdir my-new-project && cd $_

^这里有一个由两个简单命令组成的命令。第一个参数的最后一个参数是my-new-project,因此第二个简单命令中的$_将扩展为my-new-project

再举一个例子:
echo a b; echo $_
#Will output:
#a b
#b

无论如何,mkdir some_dir && cd $_是一个非常常见的组合。如果您厌倦了键入它,我认为将其设为函数是一个好主意:
mkdircd() {
  #Make path for each argument and cd into the last path
  mkdir -p "$@" && cd "$_"
}

*
bash manual简单命令定义为“一系列可选变量赋值,后跟用空格分隔的单词和重定向,并由控制运算符终止。”,其中控制运算符指的是|| & && ; ;; ( ) | |& <newline>之一。

实际上,$_的工作方式与我描述的相同,但仅以||&&;或换行符作为控制运算符。

关于bash - 'cd $_'是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30154694/

10-13 23:44