Odpowiedzi:
Twoja składnia oceny arytmetycznej jest nieprawidłowa. Użyj dowolnej z poniższych (pierwszy jest bardzo przenośny, ale powolna, drugi POSIX i przenośne z wyjątkiem Bourne shell i wcześniejsze wersje Almquist skorupek trzy ostatnie wymagają ksh
, bash
lub zsh
):
a=`expr "$a" + "$num"`
a=$(($a+$num))
((a=a+num))
let a=a+num
((a+=num))
Lub możesz po prostu pominąć całą for
pętlę i po prostu zrobić:
wc -l folder/*
Lub jeśli chcesz tylko całość:
cat folder/* | wc -l
Lub z zsh i jego mult_ios
opcją:
wc -l < folder/*
możesz również użyć tego kodu
a=`expr $a + $num`
echo $a
i UPEWNIJ SIĘ, ŻE JEST PRZESTRZEŃ NA OBU STRONACH + W „$ a + $ num”
Przepraszamy, poprzednia edycja dotyczyła innego wpisu. Oto tylko niewielka modyfikacja oryginalnego skryptu:
niech a = 0 niech num = 0 dla i w folderze / * robić num = `cat $ i | wc -l` a = $ (echo $ a + $ num | bc) gotowy echo $ a
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:
a=$((a+num))
a=$(($a+$num))
podczas gdy inne możliwości wymienione przez @manatwork mogą być ważne w bourne ponownie shell ( bash
)
tak to robię
MY_VARIABLE=$((num1+num2))
$
wnętrza((...))
.a=$((a+num))
jest już w porządku.