Uzavřeno. Tato otázka je mimo téma . Momentálně nepřijímá odpovědi.
Komentáře
Odpověď
Odpovědět na otázku položenou v názvu stručně:
if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi
Testy pro celočíselné srovnání jsou:
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.
Použití e. G. <
nebo >
provede porovnání objednávek ASCII, takže [[ 0100 < 100 ]]
bude pravda.
Komentáře
- Stephen Harris měl pravdu, že jsem vložil překlep, a vy jste měli pravdu, že jsem použil nesprávnou syntaxi. Ani po opravě obou problémů však skript ještě nefunguje. /:
- Přidejte
set -x
do horní části skriptu a spusťte jej s tímto umístěním. To vám ukáže, co skript ve skutečnosti dělá, abyste jej mohli porovnat s tím, co si myslíte dělá ' a podle toho je upravte.
Odpověď
Opravil jsem překlep, který jistě porušoval program, a Opravil jsem syntaxi operátoru a také ji rozhodně porušil. Nicméně (a to se může zdát směšné), jakmile jsem tyto problémy opravil, provedl jsem ručně operaci valid=${#validCheck}
, abych pro každý případ otestoval délku řetězce a zjistil, že délka adresáře bylo ve skutečnosti 45 znaků, ne 46. Cítím se teď jako droga, ale jsem rád, že problém byl vyřešen, že mohu přejít k naléhavějším funkcím. Děkuji vám oběma za opravy mých překlepů a děkuji vám Richardovi za váš návrh nástrojů chroot vězení.
valid=${#vaidCheck}
– To říkávaidCheck
; by měl býtvalidCheck
chroot
vězení nebo kontejner. Existuje několik dobrých nástrojů, které vám to umožní. Používání nástrojů na nízké úrovni je složité a zbytečné; podívejte se na nástroj na vysoké úrovni, jako je ukotvitelný panel. Dosud jsem nepoužíval ukotvitelný panel, ale mohl by být tím, co potřebujete. Použil jsemchroot
vězeňské nástroje a fungují dobře, ale prozkoumají bezpečnostní problémy (pro chroot a kontejnery). Ether bude fungovat lépe než všechno, co dokážeme sami.