Господа, прошу помощи знатоков.
Есть скрипт поиска в названиях файлов выражения, получаемого из БД#!/bin/bash
DIR=/home/konsai/test
CSHIFT=`mysql -u konsai test -N -e "select max(shiftno) from shiftslog"`
if [ -e $DIR/$CSHIFT ];
then echo "есть такой файл" $CSHIFT
else
echo "Нет такого файла"
fiзапрос mysql возвращает 65180
директория содержит файлы shift_65180_16.02.14.tgz, shift_65170_15.02.14.tgz ну и так далее
В общем - выражение из базы содержится в названии файла.
просто файл 65180 если создать - скрипт работает правильно. файл находит. если его удалить - не находит.
Спасибо за помощь!
> запрос mysql возвращает 65180
> директория содержит файлы shift_65180_16.02.14.tgz, shift_65170_15.02.14.tgz ну и так
> далее
> В общем - выражение из базы содержится в названии файла.
> просто файл 65180 если создать - скрипт работает правильно. файл находит. если
> его удалить - не находит.
> Спасибо за помощь!а так
DIR=/home/konsai/test
CSHIFT=`mysql -u konsai test -N -e "select max(shiftno) from shiftslog"`
ls $DIR | grep -q $CSHIFT
if [ $? -eq 0 ];
then echo "есть такой файл" $CSHIFT
else
echo "Нет такого файла"
fic find'ом у меня так вышло
DIR=/home/konsai/test
CSHIFT=`mysql -u konsai test -N -e "select max(shiftno) from shiftslog"`
if [ -n "$(find $DIR -name "*$CSHIFT*")" ];
then echo "есть такой файл" $CSHIFT
else
echo "Нет такого файла"
fi
Михалыч, это пять
второй вариант меня устроил больше, потому что, он хотя бы выводит результат в консоли если просто ввести find -name "*65180*"
> Михалыч, это пять
> второй вариант меня устроил больше, потому что, он хотя бы выводит результат
> в консоли если просто ввести find -name "*65180*"гыг-гыг.. я думал нужно просто получить да - нет, есть такой файл или нет
а так, в первом варианте из grep убрать ключик -q ( quiet/тихий ) и будет выводить то что найдётвот так, с цифирькой -1 (один) оно идеологически для grep'а даже правильнее
ls -1 $DIR | grep "$CSHIFT"
каюсь ... в матчасти слаб.. пойду посыплю бошку пеплом!
Спасибо еще раз!