Chcę kumulować rozmiar linii wielu plików zawartych w folderze. Napisałem następujący skrypt:
let a=0
let num=0
for i in folder/*
do
num=`cat $i | wc -l`
a=$a+$num
done
echo $a
To, co otrzymuję na końcu skryptu, to 123 + 234 + 432 + ... a nie wynik operacji arytmetycznej dodawania.
shell
shell-script
arithmetic
ciekawy
źródło
źródło
$
wnętrza((...))
.a=$((a+num))
jest już w porządku.możesz również użyć tego kodu
i UPEWNIJ SIĘ, ŻE JEST PRZESTRZEŃ NA OBU STRONACH + W „$ a + $ num”
źródło
Możesz najpierw zadeklarować typ zmiennej:
źródło
Przepraszamy, poprzednia edycja dotyczyła innego wpisu. Oto tylko niewielka modyfikacja oryginalnego skryptu:
źródło
Odpowiedź musi określać, w której powłoce kod jest poprawny. Na przykład w bourne Shell (
sh
) obowiązują tylko następujące instrukcje:podczas gdy inne możliwości wymienione przez @manatwork mogą być ważne w bourne ponownie shell (
bash
)źródło
tak to robię
źródło