微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

unix – shell脚本“for”循环语法

我已经得到以下工作:
for i in {2..10}
do
    echo "output: $i"
done

它产生一串输出:2,输出:3,等等。

但是,尝试运行以下操作:

max=10
for i in {2..$max}
do
    echo "$i"
done

产生以下:

output: {2..10}

我如何让编译器实现它应该将$ max作为数组的另一端,而不是字符串的一部分?

括号扩展,{x..y}在其他扩展之前执行,因此您不能将其用于可变长度序列。

相反,使用seq 2 $ max方法作为mobrule声明。

所以,对于你的例子,它将是:

max=10
for i in `seq 2 $max`
do
    echo "$i"
done

原文地址:https://www.jb51.cc/bash/392925.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐