gpt4 book ai didi

bash - 如何获得大括号扩展的备用分隔符?

转载 作者:行者123 更新时间:2023-11-29 09:36:01 25 4
gpt4 key购买 nike

我发现自己经常做一些愚蠢的事情,比如:

cmd $( echo foo{1,2,3} | tr ' ' , )

当我想调用 cmd foo1,foo2,foo3 时。相反,我希望能够按照以下方式做一些事情:

OFS=, ;命令 foo{1,2,3}

强制大括号扩展给我一个逗号分隔的列表。有没有这样的功能可用?

最佳答案

我认为使用简单的变量或设置是不可能的。

但是,您可以捕获数组中的大括号展开,然后使用 IFS 和参数替换来实现该效果:

$ ( a=( foo{1,2,3} ); IFS=,; printf -- "%s\n" "${a[*]}" )
foo1,foo2,foo3

在那里,我使用的是子 shell,因此我不会更改当前 shell 中的 IFS。


这是一个简短的更整洁的功能:

$ join() { local IFS=$1; shift; printf -- "%s\n" "$*"; }
$ join , foo{1,2,3}
foo1,foo2,foo3

关于bash - 如何获得大括号扩展的备用分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55050760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com