bash使用上一个命令的第二个参数

Jua*_*blo 2 bash

如何在新命令中使用上一个命令的第二个参数?

例如,用

$ mkdir test 
Run Code Online (Sandbox Code Playgroud)

我创建了一个目录,如何使用目录名称进行更改呢?

$ mkdir test && cd use_var
Run Code Online (Sandbox Code Playgroud)

cda*_*rke 6

$_ 是上一个命令的最后一个(最右边)参数.

mkdir gash && cd "$_"
Run Code Online (Sandbox Code Playgroud)

(我不创建调用的文件或目录test,这是内置shell的名称,可能导致混淆)


che*_*ner 5

通过历史记录扩展,您可以在当前命令行中引用任意单词

mkdir dir1 && cd "!#:1"
# 0     1   2  3  4
Run Code Online (Sandbox Code Playgroud)

!#指的是到目前为止输入的行,并且:1是指第一个字(mkdir从0开始).

如果您在脚本中使用它(即非交互式shell),则需要使用set -H和转换历史记录扩展set -o history.