Commenti
Answer
Per rispondere alla domanda posta nel titolo sinteticamente:
if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi
I test per i confronti di interi sono:
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.
Utilizzando e. g. <
o >
esegue un confronto dellordine ASCII, quindi [[ 0100 < 100 ]]
sarà vero.
Commenti
- Stephen Harris aveva ragione quando avevo inserito un errore di battitura, e avevi ragione che avevo usato una sintassi errata. Tuttavia, anche dopo aver corretto entrambi i problemi, nessuno dei due script funziona ancora. /:
- Aggiungi
set -x
allinizio dello script ed eseguilo con quello in posizione. Questo ti mostrerà cosa sta effettivamente facendo lo script, in modo da poterlo confrontare con ciò che pensi sta facendo ' e modificare di conseguenza.
Risposta
Bene, ho corretto lerrore di battitura, che sicuramente stava rompendo il programma, e Ho corretto la sintassi delloperatore, interrompendola definitivamente. Tuttavia (e questo può sembrare ridicolo), una volta risolti questi problemi, ho eseguito manualmente loperazione valid=${#validCheck}
per testare la lunghezza della stringa per ogni evenienza e ho scoperto che la lunghezza della directory in realtà era di 45 caratteri, non 46. In questo momento mi sento uno stupido, ma sono contento che il problema sia stato risolto e potrei passare a funzioni più urgenti. Grazie ad entrambi per le vostre correzioni ai miei errori di battitura e grazie richard per il vostro suggerimento sugli strumenti chroot jail.
valid=${#vaidCheck}
– DicevaidCheck
; dovrebbe esserevalidCheck
chroot
jail o container. Ci sono alcuni buoni strumenti per permetterti di farlo. Usare gli strumenti di basso livello è complicato e non necessario; dai unocchiata a uno strumento di alto livello come docker. Non ho ancora utilizzato docker, ma potrebbe essere quello che ti serve. Ho usatochroot
jail tools e funzionano bene, ma ho fatto qualche ricerca sui problemi di sicurezza (per chroot e container). Ether funzionerà meglio di qualsiasi cosa possiamo fare da soli.