如何转换包含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)