use*_*001 5 bash parameter-expansion
有没有办法!$在参数扩展上下文中使用?促使这个问题的期望用法是快速(就关键笔划而言)文件名称的更改(例如,不是将文件名保存在变量中并执行rsvg-convert $svg > ${svg/.svg/.png},而是可以改为使用rsvg-convert $! > $!{/.svg/.png},其中$!{/.svg/.png}错误的语法暗示所需的当有问题的文件是前一行的最后一个标记时,这种命令通常可以比在存在共享不同长度的前缀的文件时使用标签完成或者通过复制和粘贴文件名来更快地输入.用鼠标选择).据我所知,没有办法!$在这样的背景下使用,但也许通过一些诡计可以实现类似的效果.
根据您希望替换的复杂程度,历史记录扩展确实支持将第一次出现的字符串替换为另一个字符串.你只需在替换之前使用:like:
rsvg-convert !$ > !$:s/.svg/.png
您可以在此处查看所有历史记录修饰符
至少在emacs-mode中,如果按alt+,bash也会将上一个命令的最后一个参数内联(当运行命令时不用于扩展)..所以在这种情况下输入可能是最快的:
rsvg-convert
然后alt+ .>alt+ .然后删除它刚刚放置的扩展alt+ + bksp然后新扩展:png