在Bash中有没有办法调用前一个命令的参数?我通常先执行vi file.c,然后执行gcc file.c。在Bash中有没有办法调用前一个命令的参数?
vi file.c
gcc file.c
sqyvllje1#
您可以使用$_或!$重新调用上一个命令的最后一个参数。Alt + .也可用于调用前面任何命令的最后一个参数。
$_
!$
uajslkp62#
如果前一个命令有两个参数,如下所示
ls a.txt b.txt
你想要第一个你可以输入
!:1
给予
a.txt
或者,如果两者都需要,您可以键入
!:1-2
a.txt b.txt
您可以将其扩展到任意数量的参数,例如:
!:10-12
egmofgnx3#
!!:n,其中n是所需参数从0开始的位置。例如:
!!:n
n
echo 'one' 'two' # "one two" echo !!:2 # "two"
!前缀用于访问前面的命令。其他有用的命令:
!
!^
!*
!!
!n
history
!pattern
pattern
!!:s/find/replace
replace
find
More info on command history
72qzrwbm4#
在命令行中,可以按alt+.或esc-。它循环遍历前面命令的最后一个参数。
f3temu5u5#
如果你知道一个特定命令的历史记录中给出的数字,你几乎可以使用下面的术语来获取该命令中的任何参数。使用下面的语句获取历史记录中第三个命令的第二个参数,!3:2使用以下命令从历史记录中的倒数第五个命令中获取第三个参数,!-5:3使用减号,要求它从历史记录的最后一个命令开始遍历。
!3:2
!-5:3
qv7cva1a6#
!* 使用所有先前的参数运行新命令。
ls /tmp cd !* #you are now in /tmp
xpszyzbs7#
可以,您可以使用!$来调用前面命令的最后一个参数。
7条答案
按热度按时间sqyvllje1#
您可以使用
$_
或!$
重新调用上一个命令的最后一个参数。Alt + .也可用于调用前面任何命令的最后一个参数。
uajslkp62#
如果前一个命令有两个参数,如下所示
你想要第一个你可以输入
给予
或者,如果两者都需要,您可以键入
给予
您可以将其扩展到任意数量的参数,例如:
egmofgnx3#
!!:n
,其中n
是所需参数从0开始的位置。例如:
!
前缀用于访问前面的命令。其他有用的命令:
!$
-上一个命令的最后一个参数!^
-上一个命令的第一个参数(在program/built-in/script之后)!*
-上一个命令的所有参数!!
-上一个命令(通常发音为“bang bang”)!n
-来自history
的命令编号n
!pattern
-与pattern
匹配的最新命令!!:s/find/replace
-最后一条命令,用replace
替换find
More info on command history
72qzrwbm4#
在命令行中,可以按alt+.或esc-。
它循环遍历前面命令的最后一个参数。
f3temu5u5#
如果你知道一个特定命令的历史记录中给出的数字,你几乎可以使用下面的术语来获取该命令中的任何参数。
使用下面的语句获取历史记录中第三个命令的第二个参数,
!3:2
使用以下命令从历史记录中的倒数第五个命令中获取第三个参数,
!-5:3
使用减号,要求它从历史记录的最后一个命令开始遍历。
qv7cva1a6#
!* 使用所有先前的参数运行新命令。
xpszyzbs7#
可以,您可以使用
!$
来调用前面命令的最后一个参数。