Suljettu. Tämä kysymys on aiheen ulkopuolella . Se ei tällä hetkellä hyväksy vastauksia.
Kommentit
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++))
expr
?expr: syntax error
.