bash:在命令行上评估替换和替换

时间:2012-09-12 14:21:46

标签: bash command-line-interface readline

有人曾经告诉我如何用替换的输出替换当前命令(输入行)。我怀疑它是一个readline函数但是不记得哪个。这个想法基本上就是如果你键入类似的东西

$ cd `pwd` <READLINE-MACRO such as M-b or C-a>

然后命令行将变为:

$ cd /home/username/files

并且在运行命令后,历史文件将具有cd /home/username/files而不是'cd`pwd`'

2 个答案:

答案 0 :(得分:2)

根据§ 8.4.8 "Some Miscellaneous [Readline] Commands" of the Bash Reference Manual

  

shell-expand-line (M-C-e)

     
    

像shell一样扩展行。这将执行别名和历史记录扩展以及所有shell单词扩展(请参阅Shell Expansions)。

  

所以,只需输入你的命令:

cd `pwd`

然后按Alt + Ctrl + e以执行命令替换:

cd /home/username/files

然后按Enter键。

答案 1 :(得分:0)

我猜你发现了这样的情况:首先你运行

  

cd`pwd`

然后当你跑:

  

!cd

它会搜索你的历史cd命令并将`pwd`替换为/ home / username / files

是吗?