我在教程中看到了这个命令,用于创建一个新目录:
mkdir my-new-project && cd $_
我知道mkdir my-new-project
命令用于创建一个新目录,但是cd $_
是做什么的?我在教程中看到了这个命令,用于创建一个新目录:
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手册中,simple command被定义为"可选变量赋值序列,后跟空格分隔的单词和重定向,并以控制运算符终止。"其中控制运算符指的是 || & && ; ;; ( ) | |& <newline>
中的一个。
实际上,$_
的作用与我所描述的类似,但只能使用 ||
、&&
、;
或换行符作为控制运算符。
7. 如何使用单个命令创建目录并切换到该目录。您可能已经知道,&& 运算符用于执行多个命令, $_ 展开为前一个命令的最后一个参数。
如果您想要快速创建一个目录并进入该目录,可以使用单个命令完成。运行以下命令:
$ mkdir [dir-name] && cd $_
对于那些从Udacity的Git版本控制课程过来的人,HowToForge提供了一个很好的解释,这里。
git clone https://github.com/udacity/course-git-blog-project blog-project && cd $_
。这将克隆一个存储库并在新创建的目录中打开。 - low_vision