Я был пользователем UNIX в течение большего количества лет, чем я хочу думать о, и в то время я был обучен ожидать это, когда противоречащие переключатели даны программе последние победы. Недавно я заметил это
cat -bn file
и
cat -nb file
оба используют -b
опция (непустые строки числа) по -n
опция (число все строки). Я получаю это поведение и на BSD и на Linux, таким образом, я не думаю, что это - причуда реализации. Это - что-то, что указано где-нибудь, и я являюсь просто сумасшедшим для ожидания, что первый пример нумерует все строки?
Я смотрел на исходный код FreeBSD для кошки (1), и соответствующие исходные строки:
case 'b':
bflag = nflag = 1; /* -b implies -n */
Таким образом, это похоже на преднамеренное проектное решение; интерпретация -b
это, это изменяет поведение -n
, вместо -b
и -n
будучи двумя взаимоисключающими альтернативами.