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.