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.