Lisää
Miten voin lisätä numeroita bash-skriptissä?
Minulla on tämä bash-skripti ja minulla oli ongelma rivillä 16. Miten voin ottaa rivin 15 edellisen tuloksen ja lisätä siihen sen muuttujaan rivillä 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
522
3
Kokonaisluvuille:
Käytä aritmeettinen laajennus:
$((EXPR))
Ulkoisen
expr
-apuohjelman käyttäminen. Huomaa, että tätä tarvitaan vain todella vanhoissa järjestelmissä.Liukulukulaskennassa:
Bash ei suoranaisesti tue tätä, mutta voit käyttää paria ulkoista työkalua:
Voit myös käyttää tieteellistä merkintätapaa (esim.
2.5e+2
).Yleiset sudenkuopat:
Muuttujaa asetettaessa ei saa olla välilyöntejä
=
:n molemmin puolin, muuten komentotulkki tulkitsee ensimmäisen sanan suoritettavan sovelluksen nimeksi (esim.num=
tainum
).num= 1
num =2
bc
jaexpr
odottavat jokaista lukua ja operaattoria erillisenä argumenttina, joten välilyönnit ovat tärkeitä. Ne eivät voi käsitellä argumentteja kuten3+
+4
.num=`expr $num1+ $num2`
Käytä aritmeettista laajennusta
$(( ))
.Katso lisätietoja osoitteesta http://tldp.org/LDP/abs/html/arithexp.html.
Siihen on tuhat ja yksi tapaa. Tässä yksi, jossa käytetään
dc
:tä: