Kommentarer
Svar
Att svara på frågan i titeln kortfattat:
if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi
Testerna för heltaljämförelser är:
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.
Använda e. g. <
eller >
gör en ASCII-orderjämförelse, så [[ 0100 < 100 ]]
kommer att vara sant.
Kommentarer
- Stephen Harris hade rätt i att jag hade skrivit ett skrivfel, och du hade rätt i att jag hade använt felaktig syntax. Men även efter att ha korrigerat båda problemen fungerar inget skript ännu. /:
- Lägg till
set -x
mot toppen av ditt skript och kör det med det på plats. Det visar dig vad skriptet faktiskt gör, så att du kan jämföra det med vad du tycker det ' gör och redigera därefter.
Svar
Tja, jag korrigerade skrivfelet, vilket verkligen bröt programmet, och Jag fixade operatörens syntax och bröt också definitivt den. Men (och det här kan tyckas löjligt), när jag väl har korrigerat dessa problem, formade jag valid=${#validCheck}
manuellt för att testa strängens längd för alla fall och fann att katalogens längd var faktiskt 45 tecken, inte 46. Jag känner mig som en dope just nu, men jag är glad att problemet har lösts att jag kan gå vidare till mer pressande funktioner. Tack båda för dina korrigeringar av mina skrivfel och tack Richard för ditt förslag om chroot-fängelseverktyg.
valid=${#vaidCheck}
– Det sägervaidCheck
; ska varavalidCheck
chroot
fängelse eller behållare. Det finns några bra verktyg som gör att du kan göra detta. Att använda verktyg på låg nivå är svårt och onödigt; ta en titt på ett verktyg på hög nivå som docker. Jag har ännu inte använt docker men kan vara vad du behöver. Jag har använtchroot
fängelseverktyg, och de fungerar bra, men undersöker säkerhetsfrågorna (för chroot och containrar). Ether kommer att fungera bättre än vad vi kan göra själva.