Nasıl bir bash betiği numaraları ekleyebilir miyim
Bu bash script var ve 16 satırında bir sorun vardı. Nasıl satır 15 önceki sonuç alıp ekleyebilirim değişken satır 16?
#!/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
CEVAP
Tamsayılar için:
Kullanın arithmetic expansion:
$((EXPR))
num=$((num1 num2)) num=$(($num1 $num2)) # also works num=$((num1 2 3)) # ... num=$[num1 num2] # old, deprecated arithmetic expression syntax
Dış
expr
yardımcı kullanarak. Bu çok eski sistemler için gerekli olduğunu unutmayın.num=`expr $num1 $num2` # whitespace for expr is important
Kayan nokta için:
Bash doğrudan bu destek değil, ama dış araçları bir çift vardır:
num=$(awk "BEGIN {print $num1 $num2; exit}")
num=$(python -c "print $num1 $num2")
num=$(perl -e "print $num1 $num2")
num=$(echo $num1 $num2 | bc) # whitespace for echo is important
Bilimsel gösterim de (örn: 2.5e 2
) kullanabilirsiniz
Ortak tuzaklar:
Zaman ayarı değişken, olamaz boşluk iki tarafından
=
, aksi takdirde bunu yapacak gücü kabuk yorumlar ilk kelime olarak adı uygulama çalıştırmak için (örn:num=
num
)num= 1
num =2
bc
expr
ayrı bir değişken olarak her numara ve operatör bekliyoruz, boşluk çok önemlidir. 18*4
*gibi süreç değişkenleri edemezler.num=`expr $num1 $num2`
Bir bash betiği nasıl eğer belli bir d...
Nasıl Git deposu için boş bir dizin ek...
Nasıl Bash dize değişkenleri bitiştirm...
Nasıl Eclipse Satır Numaraları göstere...
Nasıl ve bash ile bir dosya için hem s...