Программа inetutils не включена в Debian или Ubuntu?

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

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

exitзавершает текущий сеанс оболочки. Когда функция выполняется exit, она завершает работу оболочки, вызвавшей ее.

returnвозвращается из функции (или исходного файла сценария ). Если бы функция вместо exitиспользовала return, она вернула бы управление вызывающей среде (, возможно, интерактивной оболочке, из которой вы вызвали функцию из ), не выходя из нее.

Если вы вручную запускаете функцию installZookиз оболочки, все, что вам нужно сделать, это изменить exitна return. Если в вашем скрипте есть другой фрагмент кода, который вызывает функцию (и который вы не показываете ), тогда этот фрагмент кода должен дополнительно реагировать на статус возврата функции.

Например

installZook || return

Если бы это не было частью какой-либо функции в сценарии, и если бы вы использовали источник сценария, он вернул бы управление оболочке, если функция вернула не -нулевой код выхода.

-1
05.04.2021, 18:01
1 ответ

По умолчанию inetutils*он не установлен в Debian или Ubuntu.

Альтернативой inetdможет бытьxinetdили rlinetd. как говорится в определении пакета:replacement for inetd with many enhancements

rsyslogпредоставитьrsyslogd(/usr/sbin/rsyslogd)

rsyslogпоставляется с rsyslog.service, он включен по умолчанию.

Чтобы ответить на комментарий :

bsdutilsпредоставитьlogger(/usr/bin/logger)

openbsd-inetdпредоставить inetd.

1
28.04.2021, 22:54

Теги

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