On Fri, Feb 5, 2010 at 7:10 PM, Chris Jackson <c.jack...@shadowcat.co.uk> wrote: > Dotan Cohen wrote: > >> I'm scripting a backup solution, the line that does the business looks >> like this: >> >> tar -zcvf - * --exclude-from $EXCLUDES | openssl des3 -salt -k $1 | >> dd of=$(hostname)-$(date +%Y%m%d).tbz >> >> Because of the "v" flag tar writes to stdout the name of each file >> copied. How can I get that output redirected to a variable, to use >> later in the script? >> >> Thanks! >> > > > Use $() like you do with the date command. You have to redirect stderr back > to stdout, which means running it in a subshell: > > > FILES=$( ( tar -zcvf - * --exclude-from $EXCLUDES | openssl des3 -salt -k > $1 | dd of=$(hostname)-$(date +%Y%m%d).tbz ) 2>&1 ) > > It may cause unexpected results if there're spaces in the filenames though.
If there are spaces in filenames, you can try: $ n=0; while read l; do files[n]="$l"; ((n++)); done < <((tar -zvcf - * | openssl > $(hostname)-$(date +%Y%m%d)) 2>&1) Regards, -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org