Hiba [: -lt: a Linux szkriptben egy univerzális operátor várható [zárva]

Zárt. Ez a kérdés témán kívül van . Jelenleg nem fogadja el a válaszokat.

Megjegyzések

  • Kaphatsz hibákat a expr címről is?
  • nincs hiba az expr-en
  • További idézetek használata
  • Legközelebb kérjük, mondja el nekünk MINDEN kapott hibaüzenetet. Nem csak az utolsó egy szettből. Megkapta a következőt is: expr: syntax error.

Válasz

Próbálja az összes +1 s módosítása az expr s után + 1.

A szóköz nélkül az expr hibaüzenetet jelenít meg, és a $temp üres lesz. Ha a $temp üres, akkor a -lt egy üres helyet fog összehasonlítani egy számmal, ezért jelenik meg a hiba. Itt van egy vonal, amely megismétli a problémát:

t=0;t=`expr $t +1`;[ $t -lt 25 ] 

Kimenet (az STDERR-hez):

expr: syntax error bash: [: -lt: unary operator expected 

Még jobb, ha megváltoztatja az összes kódot, amely a külső div expr parancsot használja a shell belső aritmetikai kibővítéséhez. Tehát így kódoljon:

temp=`expr $temp +1` 

… a következőre kell változtatni:

temp=$(($temp + 1)) 

Vagy, a bash mezőben, az egész sor csak a következővel helyettesíthető:

((temp++)) 

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük