首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QNX外壳循环序列

QNX外壳循环序列
EN

Stack Overflow用户
提问于 2012-06-25 19:19:04
回答 5查看 4.4K关注 0票数 0

下面的两个示例都可以在现代Bash中工作,但在不同的sh shell(如QNX shell)中不能工作。

代码语言:javascript
复制
$ for i in {1..3}; do echo $i; done
1
2
3

$ for i in $(seq 1 3); do echo $i; done
1
2
3

有没有其他方法可以在QNX shell中生成相同的序列?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-27 16:27:55

我发现了一个在QNX shell中有效的方法:

代码语言:javascript
复制
integer i=0
while ((i<4)); do i=i+1; echo $i; done
票数 1
EN

Stack Overflow用户

发布于 2012-06-27 16:55:13

这是一个模拟expr攻击的简单解决方法。

代码语言:javascript
复制
yes |
head -n 3 |
nl |
while read i yes; do
  ....
done

如果您不关心i的值,那么可以去掉nl行编号。

票数 1
EN

Stack Overflow用户

发布于 2012-06-25 19:20:58

使用seqjot。您可能需要使用反引号而不是$()

代码语言:javascript
复制
for i in `seq 1 3`

如果您正在使用的QNX版本中的shell是ksh,那么您应该能够使用C风格的for循环:

代码语言:javascript
复制
for ((i = 1; i <=3; i++ ))

编辑:

我现在猜你有QNX4,它有一个ksh86克隆作为它的外壳。在我看来,在这种情况下,不包括seqjot是愚蠢的。然而,抛开所有这些,这里有一个黑客应该能够做序列:

代码语言:javascript
复制
end=3
for n in $(echo "for (i = 1; i <= $end; i++) i" | bc)
do
    echo "$n"
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11188347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档