Strona 1 z 1

Pętla for, zapis wyniku do pliku

: 06 października 2011, 19:57
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.

: 06 października 2011, 22:09
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