bash – 使用bang dollar(`!$`)扩展参数
发布时间:2020-12-15 21:55:39 所属栏目:安全 来源:网络整理
导读:有没有办法在参数扩展上下文中使用!$?促使这个问题的期望用法是快速(在击键方面)改变文件名(例如,不是将文件名保存在变量中并执行rsvg-convert $svg ${svg / .svg /.png},可以使用rsvg-convert $! $!{/.svg / .png},其中$!{/.svg / .png}是错误的语法,
有没有办法在参数扩展上下文中使用!$?促使这个问题的期望用法是快速(在击键方面)改变文件名(例如,不是将文件名保存在变量中并执行rsvg-convert $svg> ${svg / .svg /.png},可以使用rsvg-convert $!> $!{/.svg / .png},其中$!{/.svg / .png}是错误的语法,暗示了所需的效果;当文件在问题是前一行中的最后一个标记,这样的命令通常可以比在存在共享不同长度的前缀的文件时使用标签完成或通过用鼠标选择复制和粘贴文件名的替代方法更快地输入.据我所知,在这样的背景下没有办法使用!$,但也许通过一些诡计可以实现类似的效果.
解决方法
根据您希望替换的复杂程度,历史记录扩展确实支持将第一次出现的字符串替换为另一个字符串.您只需在替换前加上:like:
rsvg-convert !$> !$:s/.svg/.png 您可以看到所有历史记录修饰符here 至少在emacs-mode中,bash还会将上一个命令的最后一个参数内联(当你运行命令时不用于扩展),如果你按下alt ..所以在这种情况下输入可能是最快的: rsvg-convert 然后alt.> alt.然后使用alt bksp删除它刚刚放置的扩展名,然后删除新的扩展名:png (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |