【发布时间】:2021-03-27 22:00:23
【问题描述】:
我有一个黑名单来保存标签 ID 列表,例如1-3,7-9,其实就是代表1,2,3,7,8,9。并且可以通过下面的shell扩展它
for i in {1..3,7..9}; do for j in {$i}; do echo -n "$j,"; done; done
1,2,3,7,8,9
但首先我应该将- 转换为..
echo -n "1-3,7-9" | sed 's/-/../g'
1..3,7..9
然后将其作为参数放入for表达式中
echo -n "1-3,7-9" | sed 's/-/../g' | xargs -I @ for i in {@}; do for j in {$i}; do echo -n "$j,"; done; done
zsh: parse error near `do'
echo -n "1-3,7-9" | sed 's/-/../g' | xargs -I @ echo @
1..3,7..9
但是for 表达式无法正确解析,为什么会这样?
【问题讨论】: