Я думаю, вы хотите что-то вроде этого:
#!/bin/sh
read -rp 'Fish or chicken? ' protein
read -rp 'Beans or rice? ' starch
read -rp 'Broccoli or asparagus? ' veggie
read -rp 'Beer or beer? ' drink
echo "You have ordered the $protein with a side of $starch and $veggie, and to drink you will have $drink"
while true; do
read -rp 'Would you like to order again? ' order
if echo "order" | grep -iq 'yes'; then
exec $0
elif echo "order" | grep -iq 'no'; then
exit 0
fi
done
read
— это встроенная оболочка, которая читает со стандартного ввода. С помощью переключателя -p
он «подсказывает» пользователю и устанавливает либо переменную по умолчанию REPLY
, либо указанную переменную (белок, крахмал, овощи, напитки и т. д.)
$0
— это специальный параметр оболочки, который заменяется на имя оболочки в сценарии имя сценария
Если пользователи ответят на вопрос «Хотели бы вы заказать еще раз?» равно yes
, то скрипт будет выполнен снова, иначе он завершится.
Аналогичная проблема решена для меня этим:
Вам нужно изменить переменные файла скрипта в /etc/openvpn/easy -rsa и раскомментировать последнюю строку:
export KEY_CN="CommonName"
Запустить переменные./vars
Перезапустите сервер openvpn.