Сопоставление с образцом от входных параметров

Во-первых, сделайте точку монтирования:

$ mkdir /mnt/udisk

Затем смонтируйте Карту памяти, указав файловую систему:

$ mount -t vfat -o defaults,utf8 /dev/sdb1 /mnt/udisk

Если бы это был NTFS, то Вы могли бы использовать:

$ mount -t ntfs-3g -o defaults,utf8 /dev/sdb1 /mnt/udisk

Или для ISOs:

$ mount -o loop diskimage.iso /mnt/iso
1
24.08.2017, 03:45
2 ответа

Сопоставление с образцом в оболочках POSIX, покончили case создать. ksh также как [[ x = pattern ]] оператор (также скопированный bash и zsh) и [[ x =~ regexp ]] в последних версиях.

Так:

case $1 in
  (*5.0.3*)
    install=$1.tar
    echo Found;;
  (*)
    echo >&2 Not found
    exit 1;;
esac
4
27.01.2020, 23:17

Я не эксперт в регулярных выражениях, но это работает, по крайней мере, для того, что Вы описали.

#!/bin/sh

argument="$1"

#if [[ $argument =~ [a-zA-Z]*5\.0\.3[a-zA-Z]+ ]]; then# only works on bash
if echo $argument | egrep -q '[a-zA-Z]*5\.0\.3[a-zA-Z]+'; then
  #echo "Found: ${BASH_REMATCH[0]}" # for bash
  echo "Match Found"

  # you can check for $argument at some other location, here.

else
  echo "No match"
fi

Сохранение его как test и выполнение его, дает следующие результаты:

bash test 333xxxx5.0.3xxxxx777
Match Found

bash test 333xxxx5.0.2xxxxx777
No match

bash test 5.0.3xxxxx777
Match Found

bash test 5.0.2xxxxx777
No match

Можно добавить ^ вначале и $ в конце, для соответствия полной строке или ничему. Как это ^[a-zA-Z]*5\.0\.3[a-zA-Z]+$

1
27.01.2020, 23:17
  • 1
    Большое спасибо снова для быстрого ответа... Я получаю ошибку code./test2.bash jboss5.0.3fds./test2.bash: строка 5: условный бинарный оператор ожидал./test2.bash: строка 5: синтаксическая ошибка рядом =~' ./test2.bash: line 5: если [[$argument = ~ ^[a-zA-Z]*5\.0\.3[a-zA-Z] + $]]; затем'code –  user31522 31.01.2013, 18:38
  • 2
    я попытался использовать =, == и выполнил его передающий jboss5.0.3fds, но получающий результат как Никакое Соответствие... –  user31522 31.01.2013, 18:43
  • 3
    Что ОС Вы выполняете, и у Вас есть удар установленным вообще? "= ~" оператор конкретный удар. Сообщите мне, является ли это проблемой, я буду видеть то, что я могу сделать. –  Martín Canaval 31.01.2013, 18:48
  • 4
    Привет Martin Canaval, Большое спасибо сэр для Вашей помощи! Я нахожусь на LinuxcodeLinux 2.6.5-7.308-bigsmp № 1 SMP понедельник 10 декабря 11:36:40 GNU/Linux UTC 2007 i686 i686 i386code –  user31522 31.01.2013, 18:53
  • 5
    Martin предполагал, что Вы не хотели позволять числа в конце. Измените последнее + к a *. И обновите свой вопрос с ясными примерами исходных данных и соответствующего ожидаемого вывода. –  Mikel 31.01.2013, 19:20

Теги

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