Я хочу проанализировать, является ли пользовательский ввод целым числом и заставить его сделать это. Первый раз (iquant
) работает chkip()
работает, второй раз (idays
), я сразу же получаю: «Ошибка: не номер. Повторите попытку». Затем выполняется новый ввод. Я снимаю ipn
до break
, так что в чем дело?Исключительная переменная не работает
chkip()
{
ipn=$1
while true;
do
if [[ "$ipn" =~ ^[0-9]+$ ]] ; then
unset ipn
break
else
echo "Error: Not a number. Please retry"
read ipn
fi
done
}
echo "Please enter the name of the Set:"
read ap
echo "How much keys do you want to create [NUMBER]:"
read iquant
chkip $iquant
echo "How often do you want to change the Keys? [DAYS] ?:"
read idays
chkip $idayz
Вы, вероятно, хотите процитировать эти разложения ('«$ 1»,' «$ iquant» ', и т.д.), а также рассмотреть' установить -u', чтобы получить сообщение об ошибке при попытке использовать отключенное переменную. –
Возможно, вам также следует добавить возвращаемое значение, потому что после исправления 'iquant' будет содержать старое значение, а' ipn' будет недоступно. –
Добро пожаловать в stackoverflow! +1 для включения полного, автономного исходного кода, ожидаемого результата и фактического результата. Это делает вопрос ясным, однозначным и легким для ответа и проверки. –