Dlaczego tak
Operator < wewnątrz [[ ]] porównuje ciągi znaków leksykograficznie: „10” zaczyna się od znaku „1”, który jest wcześniej niż „9”, więc warunek jest prawdziwy i skrypt wypisuje A. Operator -lt porównuje liczby całkowite: 10 nie jest mniejsze od 9, więc wypisane zostaje D. Wybór B wynika z założenia, że < porównuje wartości liczbowe — w bash do tego służą -lt lub (( )).