P

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Pętla for, zapis wyniku do pliku

Post autor: kodama »

Witam.
Mam taki sobie mały skrypt:

Kod: Zaznacz cały

#tutaj jest tworzona tablica itd.

for nazwa in ${linie[@]}
do
z=`find . -name $nazwa*`;

    if [ -z "$z" ]; then
    echo "Nie ma pliku";
    else
    echo "Jest, w: $z";
    fi

done
I tutaj mam pytanie - chciałbym wynik tej pętli zapisać do pliku. Wiem, że mogę zrobić to przykładowo tak:

Kod: Zaznacz cały

./skrypt.sh > wynik.txt
ale jak to sprytnie wpleść do kodu, żebym mógł to uruchamiać bez "> wynik.txt" ? Żeby tak bardziej elegancko było. Przypuszczam, że to coś trywialnego, ale jakoś nie mogę tego wymyślić.

Edycja:
I jeszcze jedna rzecz w sumie - w jaki sposób zliczyć ile będzie wyników kiedy $z jest puste i $z ma wartość?

Edycja2:
No dobrze, to w sumie sobie poradziłem z tematem, może trochę "na okrągło" i pewnie da się to zrobić ładniej, no ale cóż.

Kod: Zaznacz cały

#tutaj jest tworzona tablica itd.

for nazwa in ${linie[@]}
do
z=`find . -name $nazwa*`;

    if [ -z "$z" ]; then
     echo "Nie ma pliku" >> wynik.txt
    else
     echo "Jest, w: $z" >> wynik.txt
    fi

done
A później sobie zwyczajnie robię:

Kod: Zaznacz cały

cat wynik.txt | grep -c "Nie ma" / Jest
Jakkolwiek gdyby ktoś miał inne rozwiązanie, chętnie wysłucham.
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Kod: Zaznacz cały


for nazwa in ${linie[@]}; do 
 z=`find . -name $nazwa*`
 if [ -z "$z" ]; then       
  WYNIK="Nie ma pliku"     
else       
  WYNIK="Jest, w: $z"     
 fi 
done
$WYNIK >> wynik.txt

ODPOWIEDZ