Подназвания команды Unix должны быть чувствительными к регистру?

Быстрое решение обычно использует самую простую утилиту с одной задачей.

tr простая утилита, но для чего-то еще: транслитерация (превращающий данный символы в другие), удаляя данный символы или сжимая символы.

Больше универсальных утилит как sed, awk или perl (по приказу размера), сделает это, но здесь, у Вас есть утилита с одной задачей, которая сделала бы это хорошо также: paste:

paste -d\' /dev/null file.txt /dev/null

Или:

:|paste -d\' - file.txt -
3
13.04.2017, 15:37
3 ответа

есть ли причина быть чувствительным к регистру?

ping 224.0.0.1

Оставляет доступным гораздо большее [112677]пространство имён[112678]. Например, в более поздней версии git'а можно было бы реализовать заглавные вариации в именах команд или разрешить пользователю определять макросы/альязы, как в оболочке, в которой можно было бы определять свои собственные [112679]MV[112680], [112681]CP[112682] и т.д. без необходимости переопределять [112683]mv[112684], [112685]cp[112686] и т.п.[112383].

8
27.01.2020, 21:07
[1171269] Посмотрите на это с другой стороны. Компьютер не знает ни языка, ни букв, он видит только цифры, которые затем сопоставляются с символами. Хотя я (буква [1171637]I[1171638]) и | (труба) могут выглядеть очень похожими на вас, они полностью отличаются от компьютера.

Для иллюстрации посмотрите на таблицу ниже. Вы увидите, что нет соответствия между кодом для прописной буквы и соответствующей строчной. Они не последовательны, они представлены совершенно разными кодами (таблица [1171639] источник[1171640]):

  • Другими словами, в то время как [1171642]a[1171643] и [1171644]A[1171645] могут показаться вам похожими, они не похожи на компьютер.[1171276].

5
27.01.2020, 21:07
[117543]Чувствительность к регистру - это часть POSIX способа обработки команды и аргументации, она не имеет никакого отношения к значению.

Очень хорошо, что статус и статус не одинаковы, потому что файловая система, которая является базой в системе, чувствительна к регистру (из-за правил POSIX). Обычно это хорошая практика, чтобы сохранить то же самое поведение во всей системе.

Так, например, если вашим вторым аргументом может быть имя файла или ключевое слово, вы можете считать, что ключевое слово приемлемо с учетом регистра или нет? Было бы так неприятно иметь команды, которые иногда принимают аргумент с учетом регистра, а иногда нет.

Последняя важная вещь в чувствительности к регистру, на мой взгляд, заключается в том, что если вы набираете [117961]ls -Ls[117962], то, возможно, вы сами определили это и действительно хотите набирать его с заглавной буквы [117963]L[117964], и система никогда не должна пытаться угадать и всегда выполнять то, что вы набираете.[117550].

8
27.01.2020, 21:07

Теги

Похожие вопросы