如何转换包含 glob 字符的字符串,例如
/var/lib/gems/*/bin
转换为与模式匹配的以冒号分隔的文件名字符串(即与 PATH 兼容)?
即echo/var/lib/gems/*/bin
将返回
/var/lib/gems/1.8/bin /var/lib/gems/1.9.1/bin
我要
/var/lib/gems/1.8/bin:/var/lib/gems/1.9.1/bin
相反。
显而易见的方法是通过 tr
将空格字符替换为“:”,但如果文件名本身包含空格字符,则此方法无效。
最佳答案
其实我想到了更好的解决方案:使用shell函数。
function join() {
local IFS=$1
shift
echo "$*"
}
mystring=$(join ':' /var/lib/gems/*/bin)
关于bash - 以冒号作为分隔符的通配符/路径名扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430569/