Stengt. Dette spørsmålet er utenfor emnet . Det aksepteres for øyeblikket ikke svar.
Kommentarer
Svar
Prøv endre alle +1
s etter expr
s til + 1
.
Uten mellomrommet expr
vil returnere en feil og $temp
vil være tom. Hvis $temp
er tom, vil -lt
sammenligne et tomt mellomrom med et tall, og derfor vises feilen. Her «er en foring som gjengir problemet:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
Utgang (til STDERR):
expr: syntax error bash: [: -lt: unary operator expected
Enda bedre, endre all kode som bruker ekstern util expr
for å bruke skallets egen interne aritmetiske utvidelse. Så kode slik:
temp=`expr $temp +1`
… bør endres til:
temp=$(($temp + 1))
Eller i bash
, hele linjen kan erstattes med bare:
((temp++))
expr
?expr: syntax error
.