Домены белого списка DNS

необходимо ли просто проверить в сценарии, если он выполняется в интерактивном режиме или нет?

http://www.gnu.org/software/bash/manual/html_node/Is-this-Shell-Interactive_003f.html

Кавычки:

6.3.2 Действительно ли этот Shell является Интерактивным?

Для определения в рамках сценария запуска, работает ли Bash в интерактивном режиме протестируйте значение ‘-’ специальный параметр. Это содержит меня, когда оболочка является интерактивной. Например:

case "$-" in
  *i*)   echo This shell is interactive ;;
   *)    echo This shell is not interactive ;;
esac

С другой стороны, сценарии запуска могут исследовать переменный PS1; это сброшено в неинтерактивных оболочках и установлено в интерактивных оболочках. Таким образом:

if [ -z "$PS1" ]; then
   echo This shell is not interactive
else
   echo This shell is interactive
fi

и определите ряд переменных к "_escape_codes _", если это будет интерактивным и к "" в противном случае, и используйте те переменные для colorize вывод в сценарии (в интерактивной среде, у них будут управляющие коды, то в неинтерактивном они ничего не добавят к тексту).

исключая:

case "$-" in
  *i*)    _bold_="$(printf '\033[1m')"
          _norm_="$(printf '\033[0m')"
          ;;
  *)      _bold_=""
          _norm_=""
          ;;
esac
echo "this ${_bold_}text${_norm_} is important"

3
30.03.2015, 20:18
1 ответ

Вы ищете директиву Server = вместо адреса addrive = . К сожалению, вам придется указать ваши фактические серверы DNS-сервера, оно не получит их из resolv.conf (поскольку вы используете NO-RESOLVE, чтобы предотвратить это).

server=/whatsapp.com/8.8.8.8
server=/whatsapp.com/8.8.4.4
server=/example.com/8.8.8.8
server=/example.com/8.8.4.4
⋮

Вы, вероятно, хотите генерировать это с помощью скрипта. И, конечно же, вы можете использовать обычные DNS-серверы вместо Google Public DNS.

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

1
27.01.2020, 21:31

Теги

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