从变量中去除前缀 - bash

9 浏览
0 Comments

从变量中去除前缀 - bash

在自动化程序(复制文件路径)中添加一个shell脚本(/bin/bash),我想用它来从被复制到剪贴板的变量路径中去掉常量前缀'/Volumes/'。

例如,复制文件路径的自动化程序将'/Volumes/GRAID/audiovideo.mov'复制到剪贴板,我希望粘贴的路径是'GRAID/audiovideo.mov'。

0
0 Comments

问题的原因是需要从一个名为foo的shell变量中去除一个已知的常量前缀/Volumes/。解决方法是使用${foo#/Volumes/}来移除前缀。

在Bash中,可以使用Shell参数扩展来处理字符串。Shell参数扩展是一种在变量中操作字符串的方法。在这种情况下,使用${foo#pattern}的形式来移除变量foo中以pattern开头的部分。

具体到这个问题中,通过使用${foo#/Volumes/},可以将/Volumes/从变量foo的开头移除。

详细的解释可以在Bash参考手册的§3.5.3 "Shell Parameter Expansion"中找到。

下面是完整的代码示例:

foo="${foo#/Volumes/}"

通过执行以上代码,就可以从变量foo中移除/Volumes/前缀。

0