Kako lahko dodam številke v skripto bash
Imam to bash skript in sem imel problem v vrstici 16. Kako lahko vzamem prejšnji rezultat vrstice 15 in dodam v spremenljivko v vrstici 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
Za cela števila:
Uporabite aritmetično razširitev:
$((EXPR))
Uporaba zunanjega pripomočka
expr
. Upoštevajte, da je to potrebno le za zelo stare sisteme.Za plavajočo vejico:
Bash tega neposredno ne podpira, vendar lahko uporabite nekaj zunanjih orodij:
Uporabite lahko tudi znanstveni zapis (npr.:
2,5e+2
)Običajne pasti:
Pri nastavljanju spremenljivke na obeh straneh
=
ne smete imeti belih pik, sicer bo lupina prvo besedo interpretirala kot ime aplikacije, ki jo želite zagnati (npr.:num=
alinum
).num= 1
num =2
bc
inexpr
pričakujeta vsako število in operator kot ločen argument, zato so beli presledki pomembni. Argumentov, kot so3+
+4
, ne moreta obdelati.num=`expr $num1+ $num2`
Uporabite aritmetično razširitev
$(( ))
.Za več informacij glejte http://tldp.org/LDP/abs/html/arithexp.html.
To lahko storite na tisoč in en način. Tukaj je eden z uporabo
dc
: