2016-04-06 18 views
0

ile çarpılamaya devam ederken, yapmaya çalıştığım şey değişkenler yaratacak bir süre döngüsü oluşturmak ve bu durumda yalnızca bir şey koymaktır, yalnızca n değeridir ama alamıyorum Bunu yapmak için!Döngü oluştururken değişkenler

böylece temelde num1, NUM2, SHM3 ve böylece

üzerinde
echo "$num1" 
echo "$num2" 
echo "$num3" 

1 
2 
3 

göstermesi gerekir yaratacak ama bir hata ben deli şey olmamalı çünkü burada bir şey eksik almaya devam ... bunu yapmanın

cevap

3

ile deneyin

#!/bin/bash 

    n=1 
    while (($n <= 5)) 
    do 
     eval num$n=`echo "$n"` 
     n=$((n+1)) 

    done 
    echo "$num1" 
    echo "$num2" 
    echo "$num3" 

Buradaki sorun, bash'ın num $ n'yi bir komut olarak değil de, var olan bir hata olarak değerlendirmeye çalıştığıdır.

+0

Mükemmel değerlendirmenin harika bir şey olduğunu unutmanın küçük bir şey olacağını biliyordum! – NewEffect

+0

böylece bir son şey zaten yinelemek için bu döngü yankı "1 $ 3 $" yazdırmak için "$ num $ n" gibi? – NewEffect

0

Dinamik olarak bu şekilde numaralı değişken adlar oluşturmayın; bir dizi kullanın.

n=1 
while (($n <= 5)); do 
    nums[$n]=$n # No need to execute $(echo ...) 
    n=$((n+1)) 
done 

echo "${num[1]}" 
echo "${num[2]}" 
echo "${num[3]}" 
+0

Dinamik olarak değişkenler oluşturmak yanlış mı? Ya da dizileri kullanmak daha iyi bir uygulama mı? – NewEffect