Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Üdv!
    Van egy ilyen kódom:

    #!/bin/bash
    for DIR in `find . -type d`
    do
    cd $DIR
    for FILE in stdout stderr status
    do
    diff -up stdout-captured stdout-expected > stdout-delta 2>/dev/null
    diff -up stderr-captured stderr-expected > stderr-delta 2>/dev/null
    diff -up status-captured status-expected > status-delta 2>/dev/null
    done
    cd $OLDPWD
    done

    Nos a feladata az lenne, hogy bárhol is vannak ezek fájlok a gépen, megtalálja, és a captured és az expected különbségét beirta a deltába. a kód így működőképes, csak az a gond vele, hogy a deltát az összes könyvtárba létrehozza ami a fájlokhoz vezet.
    Valami ötlet esetleg, hogy ezt mert csinálja?
    Jah és ahol találhatók ezek a fájlok ott kené csak létrehoznia a deltát, sehol máshol
    Előre is kösz

    A ciklusban nem is használod a FILE változót. A for pedig nem ellenőrzi a fájlok létezését, ráadásul azokra a fájlokra nincs is hivatkozás.
    Egyszerűbb lenne a konkrét fájlokat keresni, pl így:

    find . -name stdout-captured -o -name stderr-captured -o -name status-captured |
    while read -r FILE
    do
    diff -up "$FILE" "${FILE%captured}expected" > "${FILE%captured}delta" 2>/dev/null
    done

    Igény szerint lehet vizsgálni, hogy az expected is létezzen.

Új hozzászólás Aktív témák