On Thu, Feb 4, 2010 at 2:09 PM, Dotan Cohen <dotanco...@gmail.com> 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?
You probably want to put the data into an array rather than a variable. An explanation of how to do so can be found here: http://tldp.org/LDP/abs/html/arrays.html Scroll down to the end of Example 26-7 (just about Example 26-8). Basically, direct stdout to a file, then cat the file to add it to an array. <snip> The array=( element1 element2 ... elementN ) initialization operation, with the help of command substitution, makes it possible to load the contents of a text file into an array. #!/bin/bash filename=sample_file # cat sample_file # # 1 a b c # 2 d e fg declare -a array1 array1=( `cat "$filename"`) # Loads contents # List file to stdout #+ of $filename into array1. # # array1=( `cat "$filename" | tr '\n' ' '`) # change linefeeds in file to spaces. # Not necessary because Bash does word splitting, #+ changing linefeeds to spaces. echo ${arra...@]} # List the array. # 1 a b c 2 d e fg # # Each whitespace-separated "word" in the file #+ has been assigned to an element of the array. element_count=${#array1[*]} echo $element_count # 8 <snip> -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org