2012-04-02 13 views
5
#!/bin/ksh 
#########################  
for i in {1..30} ;do 
    echo $i 
done 

wyjście jest:ksh skrypty Dla pętli

{1..30} 

Co jest nie tak w moim kodu?

+0

Możliwy duplikat [dla zakresu pętli nie działa ksh] (http: // stackoverflow. com/questions/3005265/for-loop-range-not-working-ksh) – ceving

Odpowiedz

5

należy do bash.

Użyj tego:

for((i=1;i<=30;i++)); do 
    echo $i 
done 
+0

+1. Nie sądziłem, że Korn Shell obsługuje arytmetyczne pętle for-owe, ale [widocznie tak jest] (http://docstore.mik.ua/orelly/unix3/korn/ch06_03.htm)! – ruakh

+2

s [3]: błąd składni w wierszu 3: '('nieoczekiwane – Ilya

+1

' dla (()) 'było obsługiwane od' Ksh93'. – kev

2

Alternatywnie można przełączyć się na konstrukcji while:

i=1 
while ((i <= 30)) 
do 
    echo $i 
    ((i+=1)) 
done 
0
for {set x 0} {$x<10} {incr x} { 
      puts "x is $x" 
      } 
+1

Czy możesz dodać jakieś wyjaśnienie tego? –

+0

To nie działa w ksh – kkoolpatz