По умолчанию движок завершения zsh пытается добавить что-то только к тому, что вы набираете. Вы настроили его так, чтобы он также пытался добавить префикс. Простой интерактивный движок конфигурации завершения (compinstall
.zshrc
Настройки завершения
ExportRows = Workbooks("Other").Sheets("Export").UsedRange.Rows.Count
zstyle
Sheets("Sheet1").Rows(ExportRows+1).Copy
buildtin sets (в основном). Стиль завершения в стиле
matcher-list
- это список способов попробовать последовательно, останавливаясь, когда есть хотя бы одно совпадение. Пустая строка означает завершение по умолчанию (только суффиксы). Контроль соответствия
заклинание
l:|=* r:|=* означает пробовать префикс соответствия
* и суффикс соответствия
*, т.е. любой префикс и суффикс.
Вы можете запретить префиксы, которые начинаются с _ вообще. Это по-прежнему позволяет завершать слова, которые начинаются с
_, и завершать их добавлением префикса, но префикс не может начинаться с
_.
:help :botright
:help :saveas
:help :split
Это относится ко всем завершениям, а не только к завершающим именам команд. Я не знаю, как это ограничить именами команд.
Должен быть способ более точно исключить имена команд, которые начинаются с _, но я не знаю, как. Первое начало - со стилем завершения
игнорируемых шаблонов
.
Это исключает совпадения, которые начинаются с _
; однако, если совпадений нет, то zsh повторяет попытку без правил игнорирования. Хорошо то, что если команда начинается с символа подчеркивания, то она будет завершена во втором проходе. Плохо то, что zsh все равно попытается добавить подчеркивание, если совпадений нет, Таким образом, если у вас
vi
и
вид, но не
vim, то при нажатии
Tab после
vi будет предложен
vi и
вид
, но не _vim
, но если вы наберете vim
, то в завершении будет предложен _vim
.
Просто разберите вывод who
:
#!/usr/bin/env bash
num=$(who | sort -uk1,1 | wc -l)
date +"Today %d %B, there are $num users logged in onto the system"
sort -uk1,1
: -k1,1
означает "sort on the 1 field and only on the first field". -u
означает "печатать только уникальные поля сортировки". Вместе они выведут по одной строке для каждого найденного пользователя.
Подводя вышеперечисленное к wc -l
, выведет количество строк, которое является количеством уникальных пользователей. Обратите внимание, что -u
является расширением GNU, но поскольку вы используете дату -d
, которая также является GNU, я предполагаю, что вы используете версии GNU.