Answers:
看来bash不使用$ IFS来加入生成的单词。另一种技术是将生成的单词存储在数组中,然后$ IFS 将起作用:
我将使用一个子外壳,所以我不会更改该外壳的IFS:选择其中一个
( words=( a{b,c,d} ); IFS=,; echo "${words[*]}" )
( set -- a{b,c,d}; IFS=,; echo "$*" )
这会将逗号分隔的字符串发送到stdout。如果要捕获它:
joined=$( set -- a{b,c,d}; IFS=,; echo "$*" )
我相信有很多方法可以做到这一点。这是一种方法:
echo a{b,c,d} | sed 's/ /,/g'