Что действительно 'экспортирует СТОЛБЦЫ', делают?

У Вас уже есть почти правильная команда для версий find это не позволит Вам использовать даты:

find /var/www/html/dir/ -mtime 27 | grep '\.php'

В целом, для find - n означает, что меньше, чем, n равные средства, +n имеют в виду "больше, чем". Традиционный find имеет некоторые исключения, но GNU find и другие более новые версии такой как на OS X BSD/Mac исправили их. (Имейте это в виду, если Вы когда-либо оказываетесь на Солярисе или другой коммерческой системе Unix.)

5
25.08.2011, 19:19
3 ответа

Это - ширина Вашего текущего окна терминала, измеряемого как количество символов ASCII.

От man bash :

   COLUMNS
          Used  by  the  select  builtin command to determine the terminal
          width when printing selection  lists.   Automatically  set  upon
          receipt of a SIGWINCH.

Также в более универсальном ksh :

          COLUMNS
                 If this variable is set, the value is used to define  the
                 width of the edit window for the shell edit modes and for
                 printing select lists.

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

3
27.01.2020, 20:39

Этот ответ является чем-то вроде предположения, учитывая, что Вы не сказали относительно того, какая система Вы видите это, Солярис, HP-UX, AIX, BSD, Linux (что дистрибутив?), и т.д...

Сценарии оболочки, которые сделали взаимодействие стиля проклятий с пользователями, установят СТРОКИ переменных среды и СТОЛБЦЫ в прошлом.

Даты интерактивности стиля проклятий до систем управления окнами, таким образом, те программы обычно не делали то, что это взяло для понимания, каков размер xterm окно был. Таким образом, много основанных на проклятиях программ использовало СТРОКИ переменных среды и СТОЛБЦЫ, чтобы решить, как разметить их поля и маркировки.

Иногда, оболочки попытались бы найти и установить СТРОКИ и переменные среды СТОЛБЦОВ, когда они начали работать в xterm. Много более старых SunOS и систем Соляриса имело бы/etc/profile, делают это. Иногда SIGWINCH (в SunOS и Солярисе, по крайней мере) привык бы для установки переменных СТОЛБЦОВ и СТРОК. Поставщики раньше изменяли xterm глупыми способами и часто будут разрушать передачу SIGWINCH группе процесса, работающей в xterm, и взаимодействие стиля проклятий выглядело бы действительно плохо.

2
27.01.2020, 20:39

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

LINES и COLUMNS изначально (примерно в 1980 г.) внутренние переменные в vi и curses . Позже были введены переменные оболочки с этими именами. Хотя они могли поддерживаться в SunOS4, единственное упоминание на страницах руководства касается curses и ls :

Для определения выходных форматов для -C Параметры , -x и -m , / usr / 5bin / ls использует переменную среды, COLUMNS , чтобы определить количество позиций символов, доступных в одной выходной строке. Если эта переменная не установлена, база данных terminfo используется для определения количества столбцов на основе переменной среды TERM . Если эту информацию получить невозможно, предполагается 80 столбцов.

То есть эта функция пришла из System V и, по-видимому, была представлена ​​позже, например, этот коммит в 1989 году для версии BSD ls .

SVr4 curses (и его преемник X / Open Curses) документирует использование переменных среды LINES и COLUMNS , которые могут использоваться для переопределения описания терминала. значения для размера терминала с учетом функции use_env . На странице руководства ncurses описана эта функция.

Точно так же его введение в программирование оболочки, похоже, произошло из System V, в ksh . Когда и как SIGWINCH был объединен с этими переменными, остается неуловимым, вероятно, спорным. Однако в текущих оболочках эти устанавливают переменные оболочки ( не переменные среды ) в ответ на SIGWINCH : ksh93 , bash . Кажется, что zsh устанавливает его без SIGWINCH (аналогично fish ). При проверке Solaris 10 ksh88 не установил переменные.

В старом журнале изменений в bash 1.13 (выпущенном в сентябре 1993 г.) говорилось, что функция SIGWINCH была добавлена ​​в марте 1993 г., а на странице Свена Мачека подразумевается, что ksh93 был выпущен примерно в конце тот же год.

Наличие значения в переменной оболочки упрощает экспорт (и изменение его на переменную среды) и изменение поведения определенных программ. Но причина этой переменной заключалась в ее полезности, когда было трудно определить размеры терминала.

1
27.01.2020, 20:39

Теги

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