Это вроде как ожидалось, так как обновление с 16.04 по 18.04 еще не готово.
Это из примечаний к выпуску от 18.04:
Обновление с Ubuntu 16.04 LTS или 17.10 Обновление с 17.10 не будет включено до тех пор, пока несколько дней после выхода 18.04. Обновления с 16.04 LTS не будут включены до нескольких дней после выпуска 18.04.1, ожидаемого в конце июля.Эти 8k-строки в основном являются функциями завершения из пакета завершения bash. На моем старом рабочем столе bash использует почти секунду для чтения и определения всех этих функций, большинство из которых я никогда не использую, поэтому я отключил его.
Чтобы отключить его, отредактируйте свой ~ / .bashrc, найдите эти три строки ближе к концу и добавьте # к каждой из строк.
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
В следующий раз, когда вы запустите интерактивную сессию bash, set будет выводить только около 50-100 строк; главным образом переменные среды и специальные переменные оболочки.
Из http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html:
Если параметры и аргументы не заданы, установите отображаемые имена и значения всех переменных и функций оболочки, отсортированные в соответствии с текущей локалью, в формате, который может быть повторно использован в качестве ввода для установки или сброса текущих переменных.Те же документы, но с некоторыми примерами, можно найти по адресу: http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html [ ! d1], а команда help set дает сводку этой информации.
Таким образом, поведение, которое вы описываете, действительно правильно. Я согласен с тем, что было бы неплохо, если бы был вариант --help; обычно, когда все man set, apropos set, which set и whatis set не могут быть полезны, я попытаюсь передать --help в качестве опции. Это предотвращает запуск команды с непредвиденными результатами, поскольку она либо даст мне справочное сообщение, либо вызовет ошибку. В этом случае:
$ set --help
bash: set: --: invalid option
set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
Я считаю, что этот трюк является полезным отказоустойчивым.
Я должен указать, что первые несколько результатов Google для «bash set» привели меня к этому документация.
Попробуйте запустить set | more и посмотрите в нижней части первого экрана. Вероятно, вы увидите что-то вроде этого:
SSH_CLIENT='XXX.XXX.XXX.XXX 54284 22'
SSH_CONNECTION='XXX.XXX.XXX.XXX 54284 68.232.126.14 22'
SSH_TTY=/dev/pts/0
TERM=xterm
UID=114
USER=XXXXXXX
XDG_SESSION_COOKIE=740274408c1d635200f7415f00000009-1329686026.470247-1256968508
_=
__grub_script_check_program=grub-script-check
_scp_path_esc='[][(){}<>",:;^&!$=?`|\\'\''[:space:]]'
__expand_tilde_by_ref ()
{
if [ "${!1:0:1}" = "~" ]; then
if [ "${!1}" != "${!1//\/}" ]; then
...output truncated...
, поэтому скрипт, на который вы ссылаетесь, - это умная (если не ясно) экранированная переменная оболочки. Что касается wait, test и true. Все они документированы с помощью man-страниц. Выпуск man <command>, чтобы узнать больше о них. Пустой вывод является ожидаемым результатом этих функций.