sto implementando una funzione di estrazione di un backup sotto forma di tar.bz nel filesystem;la cosa è evidentemente delicata, per questioni di files già esistenti, date del file diverse, versioni salvate di recente ma che in realtà sono più vecchie rispetto ad altre ecc.
volevo provare a fare una cosa in stile etc-update di gentoo: se ci sono differenza fra il file nel filesystem e quello nel tar.bz l'utente decide cosa fare, e puo vedere i 2 files ecc..

codice:
codice:
#!/bin/bash
cd /
backup="/home/evellon/prova.2006-08-21-0935.tar.gz"
echo "Diffences between filesystem and archive:"
n=1

tar --diff --file $backup --directory / | grep -v "time" | while read i; do
	echo "    $n) $i"
	read ciao
	let n++
done
esecuzione del codice:
codice:
$ sh check_differences.sh 
Diffences between filesystem and archive:
    1) home/evellon/test/mklist.sh: Contents differ
ci sono 2 errori: nell'esecuzione non aspetta il mio imput, e in teoria sarebbero 2 i files ad avere differenze, infatti se lancio lo stesso programma commentando la linea "read ciao" l'output è il seguente
codice:
sh check_differences.sh 
Diffences between filesystem and archive:
    1) home/evellon/test/mklist.sh: Contents differ
    2) home/evellon/test/lista_date: Size differs
questo è un ps -e durante il ciclo for
codice:
 6546 pts/2    00:00:00 bash
 6616 pts/1    00:00:00 sh
 6617 pts/1    00:00:00 tar
 6618 pts/1    00:00:00 gzip
 6619 pts/1    00:00:00 grep
 6620 pts/1    00:00:00 sh
 6621 pts/2    00:00:00 ps
se uso le pipes come sopra non dovrebbe essere eseguito prima
tar --diff --file $backup --directory /
poi, una volta che il processo è finito
grep -v "time"
e poi una volta che il processo è finito
while read i
?

a me sembra quasi che

ho provato a separare la lettura dal ciclo for in questo modo

files_list=$(tar --diff --file $backup --directory / | grep -v "time"i)

ma così, non so perchè, mi spara le varie righe nella stringa $files_list una dopo l'altra, non separate da degli \n, bensì da degli spazi