2015-11-04 46 views
0

能否告訴我在這種情況下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設置在那裏。

+0

展開階說,你不能這樣做。 Brace擴展首先發生,並且不會將'{$ 1 .. $ 2}'視爲有效。 –

+0

所以你能告訴我如何解決這個問題嗎? – alik33

+0

改爲在zsh中運行它。 –

回答

0

您可以使用「序列」命令生成的序列:

for i in `seq $1 $2`