Во-первых, сделайте точку монтирования:
$ 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
Сопоставление с образцом в оболочках 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
Я не эксперт в регулярных выражениях, но это работает, по крайней мере, для того, что Вы описали.
#!/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]+$
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
code
Linux 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
+
к a *
. И обновите свой вопрос с ясными примерами исходных данных и соответствующего ожидаемого вывода.
– Mikel
31.01.2013, 19:20