Preform-operaatio bashissa vain, jos muuttuja on pienempi kuin toinen muuttuja [suljettu]

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

Kommentit

  • Sinulla on kirjoitusvirhe molemmissa skripteissä; valid=${#vaidCheck} – Se sanoo vaidCheck; pitäisi olla validCheck
  • Näyttää siltä, että yrität luoda chroot vankilaa tai säilöä. On joitain hyviä työkaluja, joiden avulla voit tehdä tämän. Matalan tason työkalujen käyttö on hankalaa ja tarpeetonta. tutustu korkean tason työkaluun, kuten telakointiasemaan. En ole vielä käyttänyt telakointiasemaa, mutta voisin olla mitä tarvitset. Olen käyttänyt chroot vankilatyökaluja, ja ne toimivat hyvin, mutta tutkin tietoturvakysymyksiä (chroot ja kontit). Eetteri toimii paremmin kuin mitä tahansa, mitä voimme tehdä itse.

Vastaa

Vastaa otsikossa esitettyyn kysymykseen ytimekkäästi:

if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi 

Kokonaislukujen vertailutestit ovat:

 n1 -eq n2 True if the integers n1 and n2 are algebraically equal. n1 -ne n2 True if the integers n1 and n2 are not algebraically equal. n1 -gt n2 True if the integer n1 is algebraically greater than the integer n2. n1 -ge n2 True if the integer n1 is algebraically greater than or equal to the integer n2. n1 -lt n2 True if the integer n1 is algebraically less than the inte- ger n2. n1 -le n2 True if the integer n1 is algebraically less than or equal to the integer n2. 

e: n käyttäminen. g. < tai > tekee ASCII-tilausten vertailun, joten [[ 0100 < 100 ]] on totta.

Kommentit

  • Stephen Harris oli oikeassa siinä, että olin kirjoittanut kirjoitusvirheen, ja olitte oikeassa, että olin käyttänyt väärää syntaksia. Kumpikaan komentosarja ei kuitenkaan toimi vielä molempien ongelmien korjaamisen jälkeen. /:
  • Lisää set -x komentosarjan yläosaan ja suorita se paikallaan. Se näyttää, mitä komentosarja todella tekee, jotta voit verrata sitä siihen, mitä ajattelet sitä ' tekee ja muokkaa vastaavasti.

Vastaa

No, korjasin kirjoitusvirheen, joka varmasti rikkoo ohjelmaa, ja Korjasin operaattorin syntaksin, rikkomalla sen varmasti. Kuitenkin (ja tämä saattaa tuntua naurettavalta), kun olen korjannut nuo ongelmat, muokkain valid=${#validCheck} -operaation manuaalisesti testataksesi merkkijonon pituuden ja huomasin, että hakemiston pituus oli oikeastaan 45 merkkiä, ei 46. Tunnen olevani huijari juuri nyt, mutta olen iloinen, että asia on ratkaistu, jotta voin siirtyä painokkaampiin toimintoihin. Kiitos molemmista korjauksistani kirjoitusvirheissäni ja kiitos richard ehdotuksestasi chroot vankilan työkaluista.

Vastaa

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