Вам даются -n
и -z
по той же причине, по которой другие наборы тестов дают вам и ==
и !=
, или AND
и NOT
. Некоторые тестовые примеры можно сделать намного понятнее для будущих сопровождающих, избегая двойных -отрицаний. Кроме того, как упоминалось в комментарии выше, древние воплощенияsh
(i. е. оболочки Bourne и Thompson ), в отличие от современного POSIX sh
, не имели ключевого слова !
, отрицающего истинность выражений test
.