Nowe posty

Autor Wątek: skrypt, obliczanie MD5, błąd w składni  (Przeczytany 3456 razy)

Bloodneo

  • Gość
skrypt, obliczanie MD5, błąd w składni
« dnia: 2011-12-03, 16:53:45 »
Potrzebuje skryptu który oblicza skrót MD5 dla każdego pliku znajdującego się w katalogu. Parametr skryptu (podany katalog z którego zostaną odczytane dane wszystkich plików i podanie ich sumy kontrolne MD5). Skrypt powinien działać rekurencyjnie, przeglądając wszystkie pliki w danym katalogu.
Na razie wiem że błąd jest pewnie w 33 lini
#!/bin/bash

przegladaj_katalog()
{

if [ "$2" != "" ]
then
echo "katalog bazowy: " $2
echo
fi

if [ "$1" != "" ]
then
echo "katalog: " $1
echo
for file in $1/*
do

    if [ -d "$file" ]
    then
    przegladaj_katalog $file $1
    else
   echo  `md5sum $file`
   echo
    fi
done

fi

return 0
}

IN=$0

if [ $IN != "" ]
then

if [ -d $IN ]
then
przegladaj_katalog $IN $OUT
else
echo `md5sum $IN`
fi


else
echo "Nie podano parametru: "
echo "Skladnia: skrypt "
fi

arctgx

  • Gość
skrypt, obliczanie MD5, błąd w składni
« Odpowiedź #1 dnia: 2011-12-03, 17:57:20 »
Najpierw założę, że celowo nie używasz polecenia find.

Co oznacza $0? Zerknij, wpisując  
man -P 'less -p ^\\ +0' bash
Wykonaj przykład:
k=
echo $k
[ $k = '' ] && echo k jest puste lub nieustawione
[[ $k = '' ]] && echo k jest puste lub nieustawione
l='a b'
[ $l = 'a b' ] && echo t
[ "$l" = 'a b' ] && echo tak
[[ $l = 'a b' ]] && echo tak
i zajrzyj do wątku sprzed niecałego dnia: http://forum.linux.pl/viewtopic.php?id=18471

Więcej przykładów znajdziesz w prezentacji, którą polecam tu od kilku lat: www.uniforum.chi.il.us/slides/bash1.pdf

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
skrypt, obliczanie MD5, błąd w składni
« Odpowiedź #2 dnia: 2011-12-03, 18:16:45 »
A gdybyś użył finda, to nawet skryptu nie musisz pisać ;)

find ${KATALOG}/ -type f -exec md5sum {} \\;