Команда Cat не сбрасывает файлы конфигурации.

Если вы уже знакомы с bash, то работа с шаблонами подстановки истории не намного утомительнее, чем работа с любыми другими символами, специфичными для этой оболочки. Однако, если кто-то не знаком с оболочкой или просто никогда не использовал ее функции подстановки истории, очевидно, будет сюрпризом, когда ее сработают кажущиеся безобидными строки без кавычек или двойные -кавычки.

В интерактивной оболочке с включенной подстановкой истории символ !является специальным почти так же, как и символ $, т. е. везде, если только он не экранирован с помощью \или в одинарных -кавычках..

В отличие от $сквозных, подстановки истории не расширяются в здесь -документах, и, поскольку они ориентированы на строку -, они дополнительно будут происходить в строках, в которых подстановка попадает в контекст без кавычек или контекст с двойными кавычками (в этой строке при отдельном сканировании ). Дополнительную информацию см. в этом отчете об ошибке .

Подстановка истории отключена в сценариях, не -интерактивных оболочек (), потому что там не нужна возможность истории команд оболочки, а не потому, что эта функция имеет «серьезные проблемы». В сценарии сохранение каждой команды в $HISTFILEне имеет смысла, и подстановка истории также не является чем-то, на что вы хотели бы полагаться в сценарии.

Должен ли он быть включен по умолчанию или нет в интерактивных оболочках, можно обсудить (, хотя я не совсем уверен, что дебаты здесь будут иметь большое значение для bashразработчиков ). Кажется, вы думаете, что у большинства пользователей bashпроблемы с расширениями истории, но ни один из вас и я не знаем, насколько распространено их использование.

Оболочки Unix позволяют изменять поведение оболочки в соответствии со своими личными потребностями и вкусами. Если вы хотите отключить замену истории для всех ваших интерактивных оболочек,продолжайте делать то, что вы делаете, используя set +Hв вашем файле ~/.bashrc, или лоббируйте разработчиков bashдля изменения значения по умолчанию (, что, я полагаю, расстроит и запутает больше людей, чем поможет ).

0
10.02.2020, 03:44
1 ответ

См. справочную страницу cat(1), в кратком изложении здесь говорится: «cat -объединяет файлы и печатает на стандартном выходе». Он принимает файлов , и вы даете ему каталог .

0
28.04.2021, 23:24

Теги

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