Az előforma művelete a bash-ban csak akkor, ha egy változó kisebb, mint egy második változó [zárt]

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

Megjegyzések

  • Mindkét szkriptben elírás van; valid=${#vaidCheck} – Ez azt mondja, hogy vaidCheck; validCheck
  • Úgy tűnik, hogy egy chroot börtönt vagy tárolót próbál létrehozni. Van néhány jó eszköz, amellyel ezt megteheti. Az alacsony szintű eszközök használata bonyolult és felesleges; nézzen meg egy olyan magas szintű eszközt, mint a dokkoló. Még nem használtam dokkolót, de lehet, amire szüksége van. chroot börtön eszközöket használtam, és ezek jól működnek, de kutatok a biztonsági kérdésekről (a chroot és a tartályok esetében). Az éter jobban működik, mint bármi, amit mi magunk is megtehetünk.

Válasz

A címben feltett kérdés megválaszolása tömören:

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

Az egész összehasonlítás tesztjei a következők:

 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. 

Az e használatával. g. < vagy > ASCII rendelési összehasonlítást végez, így a [[ 0100 < 100 ]] igaz lesz.

Megjegyzések

  • Stephen Harrisnek igaza volt abban, hogy elgépeltem, és igaza volt abban, hogy helytelen szintaxist használtam. Mindkét probléma kijavítása után azonban egyik szkript sem működik. /:
  • Adjon set -x -t a szkript teteje felé, és futtassa a helyén. Ez megmutatja, hogy a szkript valójában mit csinál, így összehasonlíthatja ezt azzal, amit gondol ' csinál és ennek megfelelően szerkessze.

Válasz

Nos, kijavítottam az elírási hibát, ami minden bizonnyal megbontotta a programot, és Javítottam az operátor szintaxisát, szintén feltétlenül megtörve. Azonban (és ez nevetségesnek tűnhet), miután kijavítottam ezeket a problémákat, a valid=${#validCheck} műveletet manuálisan előformáztam, hogy minden esetre teszteljem a karakterlánc hosszát, és megállapítottam, hogy a könyvtár hossza valójában 45 karakter volt, nem pedig 46. Most doppingnak érzem magam, de örülök, hogy a probléma megoldódott, és áttérhetek a sürgetőbb funkciókra. Köszönöm mindkettőt az elírási hibáim javításáért, és köszönöm richardnak a chroot börtön eszközeinek javaslatát.

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