在bash中,如何在输入命令行时扩展!$?
有没有办法在命令行中扩展 !$
同时在 shell 内交互式编辑命令?
例如,当我输入 ls !$
时,我按下某个按钮,然后我会看到 !$
的值是多少。
Is there a way to expand the !$
in command line while interactively editing the command inside shell?
For example, while I am typing ls !$
, I press some button and then I see what is the value of !$
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您是否希望按字面意思处理该序列,而不进行任何扩展?您可以用撇号引用它:
'!$'
UPDATE 如果您想在执行之前展开它,您可以使用 Ctrl-Alt-E ,但要注意它也会执行“单词扩展”,因此
!$ "single argument"
将扩展为expanded_string single argument
(无引号 => 两个参数)。您还可以使用 Alt-_ (在 emacs 和 vi 模式下均有效)或 Alt-. (仅在 emacs 模式下有效)来插入直接上一个命令,没有任何扩展。
Do you want this sequence to be treated literally, without any expansion? You may quote it with apostrophes:
'!$'
UPDATE If you want to expand it before executing, you may use Ctrl-Alt-E, but beware that it would perform "word expansion" as well, so
!$ "single argument"
would be expanded toexpanded_string single argument
(no quotes => two arguments).You may also use Alt-_ (works in both emacs and vi modes), or Alt-. (works only in emacs mode) to just insert the last argument of the previous command directly, without any expansion.
您可以简单地使用:
这将打印最近执行的命令的最后一个单词。
或者输入 Ctrl-Alt-e 展开
!$
或输入 ESC. 获取
!$
You can simple use:
This will print the most recently executed command's last word.
Or type Ctrl-Alt-e to expand
!$
Or type ESC. to get
!$
您输入
!$
,然后按:Alt-^
,!$
立即展开。感谢 @Alexis 对 https://stackoverflow.com/q/9360013/813665 让我了解了
Alt-^
的力量。You type
!$
and after that you press:Alt-^
and the!$
is expanded immediately.Thanks to @Alexis for his answer on https://stackoverflow.com/q/9360013/813665 that reveals me the power of
Alt-^
.