Здравствуйте.
Набросал скрипт для поиска файлов в RPM-пакетах
#!/bin/sh
set -x
find_file()
{
#set +x
RPM_PATH="/mnt/iso/ASPLinux-11-d$INSTALL_DISK/ASPLinux/RPMS"
set +x
for i in `ls $RPM_PATH/*.rpm`; do
TEMP_STRING=`rpm -qpl $i | grep $FILE_NAME`
if [ -n "$TEMP_STRING" ]; then
echo "$TEMP_STRING"
echo -e "\t in $i"
fi
done
}
if [ -z "$1" ]; then
echo "No string input."
exit
fi
FILE_NAME="$1"
if [ -z "$2" ]; then
INSTALL_DISK="0"
else
INSTALL_DISK="$2"
fi
echo "$INSTALL_DISK"
case "$INSTALL_DISK" in
0)
for $INSTALL_DISK in 1 2 3 4; do
find_file
done
;;
1|2|3|4)
find_file
;;
*)
echo "ERROR"
;;
esac
Скрипт принимает два параметра - фрагмент имени файла и номер диска (смонторованые iso).
При использовании номера диска 1, 2, 3 или 4 все работает нормально.
Но при использовании 0 (все диски) появляется ошибка (так же использовал 5, all, ...):
root@niko:# ./find_rpm abc 0
+ '[' -z abc ']'
+ FILE_NAME=abc
+ '[' -z 0 ']'
+ INSTALL_DISK=0
+ echo 0
0
./find_rpm: line 45: `$INSTALL_DISK': not a valid identifier
Пробовал на ASPLinux-11 и на SW-10 не работает одинаково.
Подскажите в чем ошибка.