Virhe [: -lt: unar-operaattori odotettavissa shell-komentosarjassa Linux [suljettu]

Suljettu. Tämä kysymys on aiheen ulkopuolella . Se ei tällä hetkellä hyväksy vastauksia.

Kommentit

  • Saako virheitä myös expr?
  • ei virhettä näytetä lausekkeessa
  • Käytä lisää tarjouksia ™
  • Kerro seuraavalla kerralla meille KAIKKI saamasi virheilmoitukset. Ei vain sarjan viimeinen. Sinulla olisi myös expr: syntax error.

Vastaa

Yritä muutetaan kaikki +1 -kohdat expr -kohtien jälkeen + 1.

Ilman välilyöntiä expr palauttaa virheen ja $temp on tyhjä. Jos $temp on tyhjä, niin -lt vertaa tyhjää tilaa numeroon, minkä vuoksi virhe ilmestyy. Tässä on yksi linja, joka toistaa ongelman:

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

Lähtö (STDERR: ään):

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

Vielä parempi, vaihda kaikki koodit, jotka käyttävät ulkoista util expr kuoren oman sisäisen aritmeettisen laajennuksen käyttämiseen. Joten koodaa näin:

temp=`expr $temp +1` 

… tulisi muuttaa:

temp=$(($temp + 1)) 

Tai, kohdassa bash , koko rivi voidaan korvata vain:

((temp++)) 

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *