如何在命令行获得先前命令的第n个参数?
问题描述:
如果你在一个交互式shell,并键入类似:如何在命令行获得先前命令的第n个参数?
echo this is it
后来的后来,你可以展开第一个参数:
echo !^ #=> echo this
或者你可以展开最后一个参数:
echo !$ #=> echo it
但现在我想知道:
我该怎么交流请问第一个参数是n?我通过a related bash question看了看,但是好像只有工作在一个脚本时,因为!n
刚刚经过我的命令历史记录(而不是我的论点历史) - 例如
echo !1 #=> echo ls
这是有道理的,因为
history | grep -E '^\s+1 ' #=> 1 ls
,但我要的是echo !(some correct index) #=> echo is
答
作为每OPS的EDIT( moved):
这样:
~ $ echo this is it
~ $ echo !!:2
echo is
is
!!:n
是第n ARG !!:n-$
是从第n个参数传递给持续
注:!!
扩展到最后一个命令
作为每OPS的EDIT( moved):
第二个参数第二个到最后一个命令:
~ $ echo foo bar baz # This one is the target
foo bar baz
~ $ echo catz ratz batz
catz ratz batz
~ $ echo !-2:2
echo bar
bar
!-n
扩展为'n'麻痹的命令当前命令之前的命令。
注意:!-1
和!!
是相同的。