#!/bin/bash
array=("c211z091009","c212z091010","c213z091011","c214z091012","c215z091013",
"c216z091014","c217z091015","c217z091016")
NOWFILE=`date +%y%m%d`
DATE_1_GO=`date +%y%m%d --date="1 days ago"
for PLIKI in ${array[*]}
do
if [ $PLIK == 'c*.z$NOWFILE ]; then
echo "znalazłem plik $PLIK"
else
echo "Pobieram plik z 1 dzień do tyłu "
fi
done
Muszę wyszukać plik, w którym zmienia się ta cyfra po c.
Tu jest właśnie mój problem nie wiem jak zdefiniować wyszukiwanie, żeby wyszukał, ale nie brał pod uwagę tego co jest pomiędzy c a z czyli cXXXz091009.
W kodzie brakuje chyba po prawej stronie pojedynczego cudzysłowu.
Nie tak już próbowałem , efekt jest taki że wyświetla się cały czas "Pobieram plik z 1 dzień do tyłu " .
Wygląda jak by nie przeszukiwał tablicy a raczej nie porównywał tego co ma w zmiennej $PLIK z tym moim szukanym ciągiem
Jeśli tak to znaczy, że program porównuje zmienną $PLIK z szukanym ciągiem. Jeśli nie to będzie oznaczało, że problem nie leży w sposobie zapisu wzorca 'c???.z$NOWFILE'
Jeśli wstawiam cały ciąg c212z091029 to ładnie znajduje , a jak wstawiam c???z${NOWFILE}
to wyświetla że nic nie znalazł
Czyli z tego by wynikało, że problem jest w zapisie wzorca c???z${NOWFILE}. No to jeszcze bardziej ograniczmy krąg poszukiwań. Co się stanie jak wstawisz taki wzorzec: