bash – 以冒号为分隔符的Globbing / pathname展开

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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...