I'm using the following function to find duplicates in a list of hash codes:
delete_duplicates() {
    let deleted_files=0
    echo "deleted_files $deleted_files"
    while read dup; do
        let count=1
        grep "$dup" $1 | while read file_hash; do
            if [[ $count -eq 1 ]]; then
                let count++
                continue
            else 
                file="$(echo "$file_hash" | cut -d ' ' -f 3-)"
                rm "$file"
                if [[ $? != 0 ]]; then 
                    echo "Error deleting the file $file"
                    exit 1
                fi
                echo $deleted_files
                let deleted_files++
            fi
        done
    done < $2
    echo "${deleted_files} files have been deleted"
}
The part where I call this function is:
get_hash_list > $hash_list
get_duplicates $hash_list > $duplicates
delete_duplicates $hash_list $duplicates
The inputs for the function are temp files.
I want to count the number of deleted files, but adding with let doesn't work as expected. The output is the following:
$ bash duplicateFinder.sh
deleted_files 0
0
1
2
3
0
1
2
3
...
0 files have been deleted
Is like the variable deleted_files is being redeclared every N files deleted.
I've tried adding 1 with let deleted_files++ and with let deleted_files+=1
