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.