sh question: commands as variables / stream operators in a variable

Christopher Friedt cfriedt-u6hQ6WWl8Q3d1t4wvoaeXtBPR1lH4CV8 at public.gmane.org
Wed Jul 11 11:43:40 UTC 2007


hmmph... still no test2.* ... not working ;(

Christopher Friedt wrote:
> woops,
> 
> sorry... .. was saying bzip instead of bzip2
> 
> ... :)
> 
> correct script is here:
> 
> 
> #!/bin/sh
> 
> echo 'Hello World!' > test.txt
> CMD="cat test.txt"
> OUTFILE="test2.txt"
> 
> # COMP can be one of '', 'bzip2', 'gzip'
> COMP="bzip2"
> COMP_CMD=""
> case "$COMP" in
> ("bzip2")
>   COMP_CMD=" | bzip2 -9 "
>   OUTFILE="${OUTFILE}.bz2"
> ;;
> ("gzip")
>   COMP_CMD=" | gzip -c -9 "
>   OUTFILE="${OUTFILE}.gz"
> ;;
> ("")
>   COMP_CMD=""
> ;;
> (*)
> exit 1
> ;;
> esac
> 
> CMD="${CMD} ${COMP_CMD} > ${OUTFILE}"
> exit $?
> 
> 
> Christopher Friedt wrote:
>> This is a bit of a tricky thing to work around, but i would basically 
>> like to include shell stream operators in a variable that will 
>> eventually be a command string.
>>
>> Particularly, I would like to make compression selectable in a script 
>> through a variable which contains the pipe operator '|' and then run a 
>> command (stored also as a variable) which would include a redirect on 
>> stdout '>'
>>
>> Does anyone know why something like this wouldn't work (at least in 
>> bash) ?
>>
>> My output is:
>> cat: invalid option -- 9
>> Try `cat --help' for more information.
>>
>> Any suggestions are very welcome ;-)
>>
>> ~/Chris
>>
>> A simple test script is here:
>>
>> #!/bin/sh
>>
>> echo 'Hello World!' > test.txt
>> CMD="cat test.txt"
>> OUTFILE="test2.txt"
>>
>> # COMP can be one of '', 'bzip2', 'gzip'
>> COMP="bzip2"
>> COMP_CMD=""
>> case "$COMP" in
>> ("bzip2")
>>   COMP_CMD=" | bzip -9 "
>>   OUTFILE="${OUTFILE}.bz2"
>> ;;
>> ("gzip")
>>   COMP_CMD=" | gzip -c -9 "
>>   OUTFILE="${OUTFILE}.gz"
>> ;;
>> ("")
>>   COMP_CMD=""
>> ;;
>> (*)
>> exit 1
>> ;;
>> esac
>>
>> CMD="${CMD} ${COMP_CMD} > ${OUTFILE}"
>> exit $?
>> -- 
>> The Toronto Linux Users Group.      Meetings: http://gtalug.org/
>> TLUG requests: Linux topics, No HTML, wrap text below 80 columns
>> How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
>>
>>
> -- 
> The Toronto Linux Users Group.      Meetings: http://gtalug.org/
> TLUG requests: Linux topics, No HTML, wrap text below 80 columns
> How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
> 
> 
--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list