Поймите 'compgen' встроенную команду

В ВЫВОДЕ Вы отмечаете каждый новый пакет, даже чей адрес назначения находится в Вашей LAN.

Ваши ppp таблицы маршрутизации только имеют запись по умолчанию. Это означает, что каждый пакет, когда-либо идущий в одну из этих таблиц, будет всегда направляться через Ваш шлюз на ppp*. Даже если адрес назначения того пакета находится в Вашей LAN. Поэтому правила оценены в увеличивающемся первоочередном заказе и Вашем d [0-8], таблицы пробуют прежде main.

По сути, ping к Вашей LAN направляются к Вашим ppp устройствам, и получите NATed... Таким образом, если они работают, это - потому что выбранный ppp шлюз имеет другой хост с тем же IP-адресом в его таблицах маршрутизации.

Я поместил бы каждое правило LAN в отдельную таблицу, которую пробуют перед d [0-8] таблицы, так, чтобы трафик, который должен перейти к Вашей LAN, идет на Вашу LAN.

38
09.12.2016, 19:53
2 ответа

Параметры для команды compgen такие же, как complete , за исключением -p и -r . Из справочной страницы compgen :

compgen
 compgen [option] [word]
 Generate possible completion matches for word according to the options, which 
 may be any option accepted by the complete builtin with the exception of -p 
 and -r, and write the matches to the standard output

Для параметров [abcdefgjksuv] :

  • -a означает Имена псевдонима
  • -b означает Имена оболочки builtins
  • -c означает имена всех команд
  • -d означает имена каталога
  • -e означает имена экспортируемых переменных оболочки
  • -f означает имена файлов и функций
  • -g означает Имена групп
  • -j означает Имена задания
  • -k означает Имена зарезервированных слов Shell
  • -s означает Имена службы
  • -u означает Имена userAlias ​​имена
  • -v означает Имена переменных оболочки

. Вы можете увидеть полную страницу руководства здесь .

40
27.01.2020, 19:36

В O'Reilly есть книга(bash Quick Reference Арнольда Роббинса ), в которой также полностью описаны опции формы подсказки compgen. Переход к полной документации дает несколько других вариантов, кроме перечисленных выше. Они могут быть не связаны с текущими версиями, НО есть параметры, которые больше не описаны или не описаны в документах текущей версии.

На данный момент я видел в Интернете, что эти опции в верхнем регистре используются для вызова compgenили упоминаются в полной документации!

compgen [option] [word]
complete [-abcdefgjksuv] [-o comp-option] [-A action] [-G globpat] [-W wordlist]
      [-P prefix] [-S suffix] [-X filterpat] [-F function]
      [-C command] name [name...]
      complete -pr [name...]
  • -Действие = Действие может быть одним из следующих для создания списка возможных завершений:(см. ссылки)
  • -Команда C = Запустить команду в подоболочке и использовать ее вывод в качестве списка завершений.
  • -Функция F = Запустить функцию оболочки в текущей оболочке. По его возвращении получить список завершений из массива COMPREPLY.
  • -G globpat = шаблон расширения имени файла globpat расширяется для создания возможных дополнений.
  • -Префикс P = префикс добавляется в начале каждого возможного завершения после применения всех остальных опций.
  • -Суффикс S = суффикс добавляется к каждому возможному завершению после того, как все другие параметры были применены.
  • -W wordlist = Список слов разделен с использованием символов специальной переменной IFS в качестве разделителей, и каждое результирующее слово расширяется. Возможные дополнения — это члены результирующего списка, которые соответствуют завершаемому слову.
  • -X filterpat = filterpat — это шаблон, используемый для расширения имени файла. Он применяется к списку возможных завершений, сгенерированных предыдущими параметрами и аргументами, и каждое завершение, соответствующее фильтру, удаляется из списка. Ведущий «!» в фильтре сводит шаблон на нет; в этом случае любое завершение, не соответствующее фильтру, удаляется.

Довольно исчерпывающую версию документации можно найти в Programmable Completion Builtins .

Поскольку обе команды встроены в команду, официальная документация находится на вашей локальной справочной странице для bash. Воспользуйтесь опцией поиска, чтобы найти в нем нужные части. Извините, но макет выглядит несколько сломанным (удобство использования уменьшено в сгенерированном макете )в любом варианте просмотра, даже в интернет-сервисах.

5
30.01.2020, 12:12

Теги

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