Re: помогите с bash и условием
On 22.08.2013 16:43, Andrey Tataranovich wrote:
14:35 Thu 22 Aug , Владимир Скубриев wrote:
TO="/dev/sdb"
SERIAL="RTF57NGH"
TO_DISK_INFO=`udevadm info --query=all -n $TO`
echo $TO_DISK_INFO | grep SERIAL_SHORT | grep -q $SERIALTO
# проверяем результат последней команды
if [ $? -ne 0 ];
then
echo " Parametr <SERIALTO> do not correspond hard drive <TO> -
Exiting, beacuse we cannot delete ALL DATA ..."
echo " ... !!! BE Careful !!! ..."
exit 3
fi
Проверить наличие нужного диска можно проще:
BACKUP_DISK="/dev/disk/by-id/usb-Easy_Disk_AA040127_007375-0:0"
if [ ! -b "$BACKUP_DISK" ]; then
echo "Correct backup disk not found: $BACKUP_DISK" >&2
exit 1
fi
Я стремился к универсальности, вот:
#!/bin/bash
FROM=$1
TO=$2
SERIALTO=$3
TO_DISK_INFO=`udevadm info --query=all -n "$TO"`
if [ ! $# == 3 ]; then
echo "Usage: <FROM> <TO> <SERIALNUMBER_OF_DISK_TO>"
exit 1
fi
if [[ ! -b "$2" ]] || [[ ! -b "$1" ]]; then
echo "First | Second parametr is not a valid Block device"
exit 2
fi
echo "$TO_DISK_INFO" | grep SERIAL_SHORT | grep -q "$SERIALTO"
if [ $? -ne 0 ]; then
echo " Parametr <SERIALTO> do not correspond hard drive <TO> -
Exiting, beacuse we cannot delete ALL DATA ..."
exit 3
fi
echo "$TO_DISK_INFO" | grep ID_BUS | grep -qi usb
if [ $? -ne 0 ]; then
echo " This disk is not USB Backup Disk - Exiting, beacuse we cannot
delete ALL DATA ..."
exit 4
fi
--
С Уважением,
специалист по техническому и программному обеспечению,
системный администратор
Скубриев Владимир
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Россия, Ростовская область, г. Таганрог
тел. моб: +7 (918) 504 38 20
skype: v.skubriev
icq: 214-800-502
www: skubriev.ru
Reply to: