bash shell 中的 for 循环

hahaliu005 2013-12-23 11:23:10
我写了这样一段bash代码

declare -i width=100
for w in {1..$width}
do
echo $w
done


然后报错了
[: {1..100}: integer expression expected

请问 for 循环里面那个 width 变量到底应该怎么样表示才正确呢.
...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljc007 2013-12-23
  • 打赏
  • 举报
回复
方法1:
#!/bin/bash
START=1
END=100
for ((i=$START;i<=$END;i++)); do
    echo $i
done
方法2:
#!/bin/bash
START=1
END=100
for i in $(eval echo "{$START..$END}"); do
    echo "$i"
done
hahaliu005 2013-12-23
  • 打赏
  • 举报
回复
引用 1 楼 ljc007 的回复:
方法1:
#!/bin/bash
START=1
END=100
for ((i=$START;i<=$END;i++)); do
    echo $i
done
方法2:
#!/bin/bash
START=1
END=100
for i in $(eval echo "{$START..$END}"); do
    echo "$i"
done
原来只能这样用啊 我主要是看到有个类似这样的例子

#!/bin/bash
for i in {1..100}; do
    echo $i
done
理论上我觉得,把那个100转换为变量应该能正常工作的,结果还是魔高一丈啊.

23,118

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧