bash:参考当前命令的先前参数

时间:2014-04-23 12:00:23

标签: bash

例如,我想做以下事情:

mv xxxx xxxx.bak

我知道我可以使用以下内容:

mv xxxx{,.bak}

我认为不是直接的。如果我能这样做会很棒:

mv xxxx $1.bak

有时我们会像这样需要它:

echo xxxx yyyy $1.suffix

我知道我们可以使用"!:n"来引用上一个命令的参数,我可以吗? 而是同样引用当前命令的参数?

顺便说一句,我想直接在shell中进行(交互式)。 感谢。

2 个答案:

答案 0 :(得分:13)

当前命令行以!#引用。

mv xxxx !#:1.bak

如果您尚未使用histverify选项,我建议您启用shopt -s histverify 选项,这样您就有机会在实际执行之前校对或编辑历史记录扩展的结果。为此:

:p

或者,如果您不想启用该选项并且只想验证单个命令,请使用$ mv xxx !#:1:p.bak mv xxx xxx.bak $ 修饰符打印扩展而不是执行它:

{{1}}

答案 1 :(得分:1)

一种方法是使用变量。就像:

f="file"
cp $f $f.bak