Ich möchte die Zeilengröße einer Anzahl von Dateien in einem Ordner akkumulieren. Ich habe folgendes Skript geschrieben:
let a=0
let num=0
for i in folder/*
do
num=`cat $i | wc -l`
a=$a+$num
done
echo $a
Was ich am Ende des Skripts erhalte, ist 123 + 234 + 432 + ... und nicht das Ergebnis der arithmetischen Addition.
shell
shell-script
arithmetic
neugierig
quelle
quelle
$
Innere((...))
.a=$((a+num))
ist schon in ordnung.Sie können diesen Code auch verwenden
und vergewissern Sie sich, dass sich BEIDSEITIG EIN PLATZ VON + IN "$ a + $ num" befindet.
quelle
Sie könnten zuerst den Variablentyp deklarieren:
quelle
Entschuldigung, die vorherige Bearbeitung war für einen anderen Beitrag. Hier nur eine kleine Modifikation des Originalskripts:
quelle
In der Antwort muss angegeben werden, in welcher Shell der Code gültig ist. Zum Beispiel sind in der bourne Shell (
sh
) nur die folgenden Anweisungen gültig:während die anderen von @manatwork aufgelisteten Möglichkeiten in bourne again shell (
bash
) gültig sein könnenquelle
Ich mache es so
quelle