Bourne Shell For i in (seq)
我想在 Bourne shell 中编写一个循环来迭代一组特定的数字。通常我会使用 seq
:
for i in `seq 1 10 15 20`
#do stuff
loop
但在这个 Solaris 盒子上,seq
似乎不存在。任何人都可以通过提供另一种解决方案来迭代数字列表来提供帮助吗?
I want to write a loop in Bourne shell which iterates a specific set of numbers. Normally I would use seq
:
for i in `seq 1 10 15 20`
#do stuff
loop
But seemingly on this Solaris box seq
does not exist. Can anyone help by providing another solution to iterating a list of numbers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果您有最新的 Solaris,请尝试
其他方式,至少有 bash 3。例如,给出从 1 到 10 和 15 到 20 的范围,
或者使用像 nawk 这样的工具
,甚至使用 while 循环
try
else if you have recent Solaris, there is bash 3 at least. for example this give range from 1 to 10 and 15 to 20
OR use tool like nawk
OR even the while loop
您可以使用
dc
模拟seq
:例如:
重写为:
You can emulate
seq
withdc
:For instance:
is rewritten as:
使用 bc 的另一种变体:
对于 Bourne shell,您可能必须使用反引号,但如果可以的话请避免使用它们:
Another variation using
bc
:For the Bourne shell, you'll probably have to use backticks, but avoid them if you can:
我发现这很有效,尽管丑陋如罪:
I find that this works, albeit ugly as sin:
结果:
$ man seq
Result:
$ man seq