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