LINUX.ORG.RU

проверить, соответствует ли переменная формату


0

1

Друзья, дайте совет. Пишу скрипт. Есть две переменные состоящие из цифр и символа '.' вот такого формата

x=$111.1111
y=$2222.2222
Какой командой проверить соответствует ли переменные этим форматам. То есть нужна конструкция, типа
if [[ соответствует ли x формату 111.1111 || соответствует ли у формату 2222.2222 ]]
then
.
.
.
else
.
.
.
fi
Помогите, кто чем может.

$ x='$111.1111'
$ y='$2222.2222'
$ if expr "$x" : '^\$[0-9]\{3\}\.[0-9]\{4\}$'; then echo yes; fi
9
yes
$ if expr "$y" : '^\$[0-9]\{3\}\.[0-9]\{4\}$'; then echo yes; fi
0
$ if expr "$y" : '^\$[0-9]\{4\}\.[0-9]\{4\}$'; then echo yes; fi
10
yes
io ★★
()
Ответ на: комментарий от io

Благодарю за советы. Очень помогло. В итоге получилось так:

if [[ $(expr $x : '[0-9]\{5\}\.[0-9]\{4\}') -eq 10 ]] 
Как вставить второе условие не знаю. Хватило одной проверки.

podovalov5
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.