Что означает lookup в правилах IP?

Bash не поддерживает нулевые байты в переменных. foo=$(cat file) заставляет $foo содержать начало файла, вплоть до первого нулевого байта. Замена команды также удаляет из файла все конечные новые строки. Например, если файл состоит из четырех байт (a, новая строка, новая строка, новая строка), то foo содержит только a, как если бы файл содержал только этот один байт.

Если вы хотите сохранить конечные новые строки, сделайте так, чтобы команда выводила дополнительный символ без новой строки, а затем удалите его.

foo=$(cat file; echo a)
foo=${foo%a}

До сих пор все это работало во всех оболочках в стиле Bourne/POSIX (ash, ksh, bash, ...). Bash ≥4.0 имеет более быстрый способ чтения файла в переменную: mapfile.

mapfile 

Просто не существует способа запихнуть нулевой байт в переменную bash. Если вам это нужно, у вас есть несколько вариантов:

  • Используйте zsh.
  • Использовать Perl.
  • Хранить данные во временном файле (что кажется бесполезным в данном случае, так как данные уже находятся в файле).
  • Закодируйте входные данные и декодируйте их обратно, например, с помощью base64 и base64 -d.

0
05.04.2018, 03:06
1 ответ

Взгляните на /etc/iproute2/rt_tables. eth1— это имя таблицы, в данном случае (необычное ). Возможно, это таблица, которая отправляет все пакеты через eth1. См.

ip route show table eth1
0
28.01.2020, 04:26

Теги

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