for $ in {$ 1 .. $ 2}无效

时间:2015-11-04 13:57:11

标签: shell for-loop arguments

你们中的任何一个人都可以告诉我这个案例中shell的问题是什么吗?

当我编写并执行此脚本(./cyklus.sh 5 10)时:

  1 #!/bin/bash
  2 
  3 
  4 if [ $# -eq 2 ]; then
  5         if [ $1 -le $2 ]; then
  6                 for i in {$1..$2}
  7                 do
  8                         if [ $i -lt $2 ]; then
  9                                 echo -n "$i "
 10                         else 
 11                                 echo "$i"
 12                         fi
 13                 done            
 14         elif [ $1 -gt $2 ]; then
 15                 echo "Prvy argument musi byt vacsi nez druhy."
 16         fi
 17 else            
 18         echo "Nezadal si 2 argumenty"
 19 fi

它会输出错误:

./cyklus.sh: line 8: [: {5..10}: integer expression expected
{5..10}

即使起始和结束整数设置为$ 1和$ 2。

1 个答案:

答案 0 :(得分:0)

您可以使用“seq”命令生成序列:

for i in `seq $1 $2`