鱼:迭代一根绳子

时间:2018-03-11 18:29:42

标签: shell fish

您如何迭代fish shell中的字符串?

不幸的是,迭代字符串并不像迭代列表那样简单:

↪ for c in a b c
      echo $c
  end
a
b
c

↪ for c in abc
      echo $c
  end
abc

1 个答案:

答案 0 :(得分:4)

fish中的for循环在列表中运行。

for VARNAME in [VALUES...]; COMMANDS...; end

内置string命令(自v2.3.0起)可用于将字符串拆分为字符列表。

↪ string split '' abc
a
b
c

输出是一个列表,因此数组操作将起作用。

↪ for c in (string split '' abc)
      echo $c
  end
a
b
c

使用索引迭代字符串的更复杂的示例。

↪ set --local chars (string split '' abc)
  for i in (seq (count $chars))
      echo $i: $chars[$i]
  end
1: a
2: b
3: c