bash + цикл while с регулярным выражением [closed]

-2
20.07.2017, 17:56
2 ответа

Вы можете переосмыслить всю концепцию. Это простой фрагмент, который поможет вам двигаться вперед.

#!/usr/bin/env bash

a=1
b=45


while read -p 'Please answer: ' answer
do
   re=$(printf '%s\n' "$answer" | tr -dc '[[:digit:]]')
   if ((re < a || re > b)); then
       read -p 'Please answer: ' $re
   else
       echo "Loop ended"
       exit 
   fi
 done
1
28.01.2020, 05:17

попробуй это:

#!/bin/bash
#
a=1
b=45
#
while [[ $answer -lt $a || $answer -gt $b ]]; do

read -p "please answer: " answer
answer=$(echo "$answer" | tr -dc '[:alnum:]\n\r')

done

Строка answer=$(echo "$answer" | tr -dc '[:alnum:]\n\r')удалит все специальные символы из ответа и установит новое значение переменной.

0
28.01.2020, 05:17

Теги

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