Я пытался настроить бесплатный VPN на Ubuntu, но не смог

Нет прямого способа выйти из цикла в случае возникновения ошибки. Очевидным способом является использование цикла whileвместо цикла for, но это не так просто сочетается с итерацией по списку. Вам нужно собрать список в переменную, а затем явно удалить элементы из списка, что делает код намного сложнее.

items=(cache thumbs);
while ((${#items[@]})) && my template "${items[0]}":clear; do shift items; done
((${#items[@]} == 0)) # to check if all the items were processed

Более короткий способ записать это, чем использование оператора if:

for what in cache thumbs; do
  my template "$what":clear || break;
done

Использование логических операторов обычно менее читабельно, чем использование if, но somecommand || fallbackдовольно идиоматично.

Обратите внимание, что цикл forвсегда завершается успешно. Нет удобного способа узнать, вышел ли код раньше (, вы можете проверить, является ли $whatпоследним элементом после цикла, но для этого требуется удобный способ узнать, каким был последний элемент, и он не позволяет вам узнать, был ли успешно обработан последний элемент ).

Это плохо масштабируется для нескольких команд. Вместо этого вы можете включить режим errexit с помощью set -e. Это приводит к тому, что оболочка завершает работу, как только команда терпит неудачу (в простых случаях — детали довольно сложны, но здесь достаточно ). Обратите внимание, что завершается вся оболочка (sub ), а не только содержащий цикл, или содержащая функция, или содержащий сценарий.Чтобы закрыть только часть скрипта, поместите эту часть в подоболочку . Обратите внимание, что модификации переменных не сохраняются в подоболочке.

( set -e;
  for what in cache thumbs; do
    my template "$what":clear;
  done
)
# Here $? is 0 if all the mv commands succeeded and nonzero otherwise

-1
27.11.2020, 14:09
1 ответ

Шаг 1. Обновите систему....

*обновление sudo apt *обновление sudo apt

Шаг 2. Найдите и запишите свой IP-адрес....

IP а IP шоу eth0

Шаг 3. Загрузите и запустите сценарий openvpn -install.sh....

wgethttps://git.io/vpn-O openvpn -ubuntu -install.sh

chmod -v +x openvpn -ubuntu -install.sh режим «openvpn -ubuntu -install.sh» изменен с 0644 (rw -r --r --)на 0755 (rwxr -xr -x )нано openvpn -ubuntu -install.sh sudo./openvpn -ubuntu -install.sh

Шаг 4. Подключите сервер OpenVPN с помощью настольного клиента iOS/Android/Linux/Windows.

Остановить сервер OpenVPN. sudo systemctl остановить openvpn -server@server.service

Запустите сервер OpenVPN. sudo systemctl запустить openvpn -server@server.service

Перезапустите сервер OpenVPN после изменения параметров конфигурации. sudo systemctl перезапустить openvpn -server@server.service

Показать статус сервера OpenVPN sudo systemctl статус openvpn -server@server.service

Шаг 5. Проверка/проверка подключения.

-1
18.03.2021, 22:46

Теги

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