Fejl [: -lt: uenig operatør forventes i shell-script Linux [lukket]

Lukket. Dette spørgsmål er uden for emnet . Det accepteres i øjeblikket ikke svar.

Kommentarer

  • Får du også fejl fra expr?
  • ingen fejl vist på expr
  • Brug flere tilbud ™
  • Fortæl os ALLE de fejlmeddelelser, du får næste gang. Ikke kun den sidste i et sæt. Du ville også have fået expr: syntax error.

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *