我正在尝试使用参数展开1:2:3:4:5:6:7:8:9:10
和模式匹配来获取{1..10}
:
$ var=$(echo {1..10})
$ echo ${var// /:}
1:2:3:4:5:6:7:8:9:10
有没有更优雅的方式(单行)?
答案 0 :(得分:9)
优雅在旁观者眼中:
( set {1..10} ; IFS=: ; echo "$*" )
答案 1 :(得分:4)
同意@ choroba关于优雅的评论,以下是其他一些可以看到的内容:
# seq is a gnu core utility
seq 1 10 | paste -sd:
# Or:
seq -s: 1 10
# {1..10} is bash-specific
printf "%d\n" {1..10} | paste -sd:
# posix compliant
yes | head -n10 | grep -n . | cut -d: -f1 | paste -sd:
答案 2 :(得分:1)
另一种可能性:
echo {1..9}: 10 | tr -d ' '