Odpowiedź
Aby odpowiedzieć na pytanie zadane w tytule zwięźle:
if [[ "$foo" -lt "$bar" ]]; then echo "$foo is less than $bar" fi
Testy porównań liczb całkowitych są następujące:
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.
Za pomocą e. sol. <
lub >
przeprowadza porównanie kolejności ASCII, więc [[ 0100 < 100 ]]
będzie prawdziwe.
Komentarze
Odpowiedź
Cóż, poprawiłem literówkę, która z pewnością zepsuła program, i Poprawiłem składnię operatora, również zdecydowanie ją łamiąc. Jednak (i może się to wydawać absurdalne), gdy naprawiłem te problemy, wykonałem operację valid=${#validCheck}
ręcznie, aby przetestować długość ciągu na wszelki wypadek i stwierdziłem, że długość katalogu miał w rzeczywistości 45 znaków, a nie 46. W tej chwili czuję się jak narkotyk, ale cieszę się, że problem został rozwiązany, że mogę przejść do bardziej palących funkcji. Dziękuję wam obojgu za poprawki w moich literówkach i dziękuję Richardowi za sugestię narzędzi chroot jail.