如何在新命令中使用上一个命令的第二个参数?
例如,与
$ mkdir test
我创建了一个目录,如何使用目录名称来更改此目录?
$ mkdir test && cd use_var
如何在新命令中使用上一个命令的第二个参数?
例如,与
$ mkdir test
我创建了一个目录,如何使用目录名称来更改此目录?
$ mkdir test && cd use_var
$_
是前一个命令的最后一个(最右边)参数。
mkdir gash && cd "$_"
(我不创建名为 的文件或目录test
,这是内置 shell 的名称,可能会引起混淆)
通过历史扩展,可以引用当前命令行中的任意单词
mkdir dir1 && cd "!#:1"
# 0 1 2 3 4
!#
指到目前为止键入的行,并:1
指第一个单词(mkdir
从 0 开始)。
如果您在脚本中使用它(即,非交互式外壳),您需要打开历史扩展set -H
和打开历史扩展set -o history
。
按Esc+.将上一个命令的最后一个参数放在光标的当前位置。在bash
shell 和ksh
shell 中测试。
我为此使用函数。在你的 shell 中输入:
mkcd() { mkdir "$1" ; cd "$1" ; }
现在你有了一个新命令mkcd
。
如果您反复需要,请将该行放入文件中~/.bash_aliases
(如果您使用bash
; 其他 shell 使用不同的名称)。