Lukket. Dette spørgsmål er uden for emnet . Det accepteres i øjeblikket ikke svar.
Kommentarer
Svar
Prøv ændre alle +1
s efter expr
s til + 1
.
Uden mellemrummet expr
returnerer en fejl, og $temp
vil være tom. Hvis $temp
er tom, sammenlignes -lt
et tomt mellemrum med et tal, hvorfor fejlen vises. Her “er en foring, der gengiver problemet:
t=0;t=`expr $t +1`;[ $t -lt 25 ]
Output (til STDERR):
expr: syntax error bash: [: -lt: unary operator expected
Endnu bedre, skift al kode, der bruger den eksterne util expr
for at bruge shellens egen interne aritmetiske udvidelse. Så kode som denne:
temp=`expr $temp +1`
… skal ændres til:
temp=$(($temp + 1))
Eller i bash
, hele linjen kan erstattes med bare:
((temp++))
expr
?expr: syntax error
.