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

时间:2012-09-12 13:21:44

标签: bash

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

例如,

$ mkdir test 

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

$ mkdir test && cd use_var

4 个答案:

答案 0 :(得分:6)

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

mkdir gash && cd "$_"

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

答案 1 :(得分:5)

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

mkdir dir1 && cd "!#:1"
# 0     1   2  3  4

!#指的是到目前为止输入的行,:1指的是第一个单词(mkdir从0开始)。

如果您在脚本(即非交互式shell)中使用此功能,则需要使用set -Hset -o history启用历史记录扩展。

答案 2 :(得分:2)

Esc + 将上一个命令的最后一个参数放在当前光标位置。在bash shell和ksh shell中进行了测试。

答案 3 :(得分:1)

我使用这个功能。在shell中输入:

mkcd() { mkdir "$1" ; cd "$1" ; }

现在你有一个新命令mkcd

如果您需要重复此操作,请将该行放入文件~/.bash_aliases(如果您使用bash;其他shell使用不同的名称)。