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

output è:ksh scripting, ciclo For

{1..30} 

Cosa c'è di sbagliato nel mio codice?

+0

Eventuali duplicati di [per la gamma di ciclo non funziona ksh] (http: // StackOverflow. it/questions/3005265/for-loop-range-not-working-ksh) – ceving

risposta

5

{1..30} appartiene a bash.

Utilizzare questa:

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

+1. Non avevo pensato che la Korn Shell supportasse l'aritmetica for-loops, ma [apparentemente lo fa] (http://docstore.mik.ua/orelly/unix3/korn/ch06_03.htm)! – ruakh

+2

s [3]: errore di sintassi alla riga 3: '('inaspettato – Ilya

+1

' per (()) 'era supportato da' Ksh93'. – kev

2

In alternativa si può passare ad una costruzione, mentre:

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

Puoi aggiungere qualche spiegazione di questo? –

+0

Questo non funziona in ksh – kkoolpatz