Reacties
Antwoord
Om de vraag in de titel te beantwoorden kort en bondig:
if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi
De tests voor vergelijkingen van gehele getallen zijn:
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. g. <
of >
doet een ASCII-ordervergelijking, dus [[ 0100 < 100 ]]
zal waar zijn.
Reacties
- Stephen Harris had gelijk dat ik een typefout had geplaatst, en je had gelijk dat ik een onjuiste syntaxis had gebruikt. Maar zelfs nadat beide problemen zijn verholpen, werkt geen van beide scripts nog steeds. /:
- Voeg
set -x
toe aan de bovenkant van je script en voer het uit met dat op zijn plaats. Dat zal je laten zien wat het script eigenlijk doet, zodat je dat kunt vergelijken met wat je denkt het ' doet en dienovereenkomstig bewerken.
Answer
Nou, ik heb de typefout gecorrigeerd, die zeker het programma kapot maakte, en Ik heb de syntaxis van de operator gerepareerd en ook zeker verbroken. Maar (en dit lijkt misschien belachelijk), nadat ik die problemen had gecorrigeerd, heb ik de valid=${#validCheck}
-bewerking handmatig uitgevoerd om de lengte van de string te testen voor het geval dat en ontdekte dat de lengte van de directory was eigenlijk 45 tekens, niet 46. Ik voel me nu een dope, maar ik ben blij dat het probleem is opgelost en dat ik misschien doorga naar meer urgente functies. Dank u beiden voor uw correcties op mijn typefouten en dank u Richard voor uw suggestie van chroot jail-tools.
valid=${#vaidCheck}
– Dat zegtvaidCheck
; zouvalidCheck
chroot
gevangenis of container probeert te maken. Er zijn een aantal goede tools om dit te doen. Het gebruik van de tools op laag niveau is lastig en niet nodig; bekijk een tool op hoog niveau zoals docker. Ik heb Docker nog niet gebruikt, maar zou kunnen zijn wat je nodig hebt. Ik hebchroot
jail-tools gebruikt, en ze werken goed, maar doe wat onderzoek naar de beveiligingsproblemen (voor chroot en containers). Ether zal beter werken dan alles wat we zelf kunnen doen.