Как преобразовать название месяца в число в дате BSD?

Как можно считать это решение правильным?

Потому что цель cat на самом деле не для отображения файлов. Это побочный эффект.

Назначение cat - con cat enate файлов (отсюда и название). Он делает это, читая каждый файл по очереди и выводя содержимое каждого на свой стандартный вывод, который, в свою очередь, при желании может быть перенаправлен.

Часто бывает полезно использовать cat , чтобы просто отображать содержимое файла, и это происходит потому, что по умолчанию стандартный вывод процесса привязан к терминалу. Вы также можете использовать специальный пейджер, например less или его старший брат more , для просмотра файлов, поскольку пейджер предназначен для просмотра файлов. .

Если cat завершит свой вывод или содержимое каждого файла новой строкой, это нарушит его давний договор. Это больше не будет полезно для фактического объединения файлов; если бы вам нужно было взять большой файл, разделить его на части и повторно соединить части, используя такой модифицированный cat , результат будет совсем не тем, с чего вы начали.

Помните, что философия UNIX заключается в том, что каждый инструмент должен делать что-то маленькое, делать это хорошо и делать это таким образом, чтобы различные инструменты можно было комбинировать для формирования более крупных контекстов.Вот почему я могу сделать что-то вроде ssh'ing для удаленного хоста, чтобы выполнить команду, передать вывод сеанса ssh в локальный инструмент (awk, perl, grep, что угодно) для массажа вывода и передать результат этого в, скажем, lpr , чтобы получить распечатку на бумажном носителе, или less для просмотра с возможностью прокрутки вперед и назад. От стандартного вывода до стандартного ввода с инструментами, где каждый инструмент выполняет только одно действие, и большинство простых инструментов (и многие из не очень простых инструментов) либо следуют этому шаблону по умолчанию, либо их можно заставить следовать этому шаблону с помощью соответствующей команды. -строчные параметры.

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

Да, конечно. Установите подсказку так, чтобы она начиналась с новой строки, как показано ниже.

$ printf 'hello' > $TMP/hello
$ PS1='\u \W: '
michael ~: cat $TMP/hello
hellomichael ~: PS1='\n\u \W: '

michael ~: cat $TMP/hello
hello
michael ~:
2
15.12.2015, 21:32
0 ответов

Теги

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