Feil [: -lt: uenig operatør forventet i shell-skript Linux [lukket]

Stengt. Dette spørsmålet er utenfor emnet . Det aksepteres for øyeblikket ikke svar.

Kommentarer

  • Får du også feil fra expr?
  • ingen feil vist på uttrykk
  • Bruk flere tilbud ™
  • Fortell oss ALLE feilmeldingene du får neste gang. Ikke bare den siste av et sett. Du ville også ha fått expr: syntax error.

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++)) 

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *