Как проверить ошибку server.conf для OpenVPN

Ниже представлена ​​функция оболочки, которую можно использовать как минимум с ksh и bash. Как говорится в комментарии, он жестко запрограммирован на ожидание шаблона ввода от этого конкретного Вопроса; то есть формата «XX» (ровно два X), за которым следует что-то - не (что-то) -XX, как предполагает одна часть вопроса.

Сценарий использует расширение параметра, чтобы удалить начальные XX, чтобы сохранить их для последующей рекомбинации с увеличивающимся индексом n . Затем он выполняет цикл от 1 до 99, обнуляет число, если это необходимо, а затем ищет несуществующее [! -f ...] такого файла. Если он не существует, он печатает это имя файла и успешно возвращает ( возвращает 0 ). Если он выходит из цикла, не найдя доступный файл, он выводит сообщение в stderr (> & 2 ), выводит ничего в стандартный вывод и возвращается с неудачным кодом возврата ( возврат 1 ).

# hard-coded to expect an input pattern of XX(something)
function rmktemp {
  pattern=$1
  suffix=${pattern#XX}
  n=1
  while [ $n -lt 100 ]
  do
    if [ $n -lt 10 ]
    then
      n="0${n}"
    fi
    tfile="${n}${suffix}"
    if [ ! -f "$tfile" ]
    then
      printf "%s\n" "$tfile"
      return 0
    fi
    n=$((n+1))
  done
  if [ $n -eq 100 ]
  then
    echo Could not find an unused file >&2
    return 1
  fi
}

Используйте это как:

LOG=$(rmktemp XX-output.log)
[ $? -eq 0 ] && echo stuff > "$LOG"
2
03.07.2015, 13:33
0 ответов

Теги

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