Kommentarer
Svar
Å svare på spørsmålet i tittelen kortfattet:
if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi
Testene for heltalssammenligninger er:
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.
Bruke e. g. <
eller >
foretar en ASCII-ordresammenligning, så [[ 0100 < 100 ]]
vil være sant.
Kommentarer
- Stephen Harris hadde rett i at jeg hadde skrevet en skrivefeil, og du hadde rett i at jeg hadde brukt feil syntaks. Imidlertid, selv etter å ha løst begge utgavene, fungerer ikke skriptet ennå. /:
- Legg til
set -x
mot toppen av skriptet og kjør det med det på plass. Det vil vise deg hva skriptet faktisk gjør, slik at du kan sammenligne det med det du synes det ' gjør og rediger deretter.
Svar
Vel, jeg korrigerte skrivefeilen, som absolutt brøt programmet, og Jeg fikset syntaksen til operatøren, og ødela den også. Imidlertid (og dette kan virke latterlig), når jeg først har løst disse problemene, formet jeg valid=${#validCheck}
manuelt for å teste lengden på strengen bare i tilfelle og fant at katalogens lengde var faktisk 45 tegn, ikke 46. Jeg føler meg som en doping akkurat nå, men jeg er glad problemet er løst for at jeg kan gå videre til mer presserende funksjoner. Takk begge for rettelsene til skrivefeilene mine, og takk Richard for forslaget ditt om chroot fengselsverktøy.
valid=${#vaidCheck}
– Det stårvaidCheck
; skal værevalidCheck
chroot
fengsel eller beholder. Det er noen gode verktøy som lar deg gjøre dette. Å bruke verktøy på lavt nivå er vanskelig og unødvendig; ta en titt på et høyt nivåverktøy som docker. Jeg har ennå ikke brukt docker, men kan være det du trenger. Jeg har bruktchroot
fengselsverktøy, og de fungerer bra, men undersøker sikkerhetsproblemene (for chroot og containere). Ether vil fungere bedre enn alt vi kan gjøre selv.