Daha
Bir bash betiğinde sayıları nasıl ekleyebilirim
Bu bash betiğine sahibim ve 16. satırda bir sorun yaşadım. Satır 15'in önceki sonucunu nasıl alabilirim ve satır 16'daki değişkene mi?
#!/bin/bash
num=0
metab=0
for ((i=1; i<=2; i++)); do
for j in `ls output-$i-*`; do
echo "$j"
metab=$(cat $j|grep EndBuffer|awk '{sum+=$2} END { print sum/120}') (line15)
num= $num + $metab (line16)
done
echo "$num"
done
522
3
Tamsayılar için:
Aritmetik genişletme]1 kullanın:
$((EXPR))
Harici
expr
yardımcı programını kullanma. Bunun yalnızca gerçekten eski sistemler için gerekli olduğunu unutmayın.Kayan nokta için:
Bash bunu doğrudan desteklemez, ancak kullanabileceğiniz birkaç harici araç vardır:
Bilimsel gösterim de kullanabilirsiniz (örneğin:
2.5e+2
)Yaygın tuzaklar:
Bir değişken ayarlarken,
=
ifadesinin her iki tarafında da boşluk bırakamazsınız, aksi takdirde kabuk ilk kelimeyi çalıştırılacak uygulamanın adı olarak yorumlamaya zorlanır (örn:num=
veyanum
)num=1
num =2
bc
ve
exprher sayı ve işleci ayrı bir argüman olarak bekler, bu nedenle boşluk önemlidir. 3+
+4
gibi argümanları işleyemezler.num=`expr $num1+ $num2`
$(( ))` aritmetik açılımını kullanın.
Daha fazla bilgi için http://tldp.org/LDP/abs/html/arithexp.html adresine bakınız.
Bunu yapmanın bin bir yolu var. İşte
dc
kullanan bir tanesi: