linux 如何调用上一个bash命令的参数?

x3naxklr  于 2022-11-22  发布在  Linux
关注(0)|答案(7)|浏览(197)

在Bash中有没有办法调用前一个命令的参数?
我通常先执行vi file.c,然后执行gcc file.c
在Bash中有没有办法调用前一个命令的参数?

sqyvllje

sqyvllje1#

您可以使用$_!$重新调用上一个命令的最后一个参数。
Alt + .也可用于调用前面任何命令的最后一个参数。

uajslkp6

uajslkp62#

如果前一个命令有两个参数,如下所示

ls a.txt b.txt

你想要第一个你可以输入

!:1

给予

a.txt

或者,如果两者都需要,您可以键入

!:1-2

给予

a.txt b.txt

您可以将其扩展到任意数量的参数,例如:

!:10-12
egmofgnx

egmofgnx3#

!!:n,其中n是所需参数从0开始的位置。
例如:

echo 'one' 'two'
# "one two"

echo !!:2
# "two"

!前缀用于访问前面的命令。
其他有用的命令:

  • !$-上一个命令的最后一个参数
  • !^-上一个命令的第一个参数(在program/built-in/script之后)
  • !*-上一个命令的所有参数
  • !!-上一个命令(通常发音为“bang bang”)
  • !n-来自history的命令编号n
  • !pattern-与pattern匹配的最新命令
  • !!:s/find/replace-最后一条命令,用replace替换find

More info on command history

72qzrwbm

72qzrwbm4#

在命令行中,可以按alt+.或esc-。
它循环遍历前面命令的最后一个参数

f3temu5u

f3temu5u5#

如果你知道一个特定命令的历史记录中给出的数字,你几乎可以使用下面的术语来获取该命令中的任何参数。
使用下面的语句获取历史记录中第三个命令的第二个参数,
!3:2
使用以下命令从历史记录中的倒数第五个命令中获取第三个参数,
!-5:3
使用减号,要求它从历史记录的最后一个命令开始遍历。

qv7cva1a

qv7cva1a6#

!* 使用所有先前的参数运行新命令。

ls /tmp
cd !*
#you are now in /tmp
xpszyzbs

xpszyzbs7#

可以,您可以使用!$来调用前面命令的最后一个参数。

相关问题