[vox-tech] bash question

Matt Holland vox-tech@lists.lugod.org
Wed, 08 Jan 2003 12:13:54 -0800


Sorry, the example isn't quite clear... the only reason for the line 
containing only '"$1";' was to demonstrate that the program that's 
getting called by the script is in the path, and that the program runs. 
  The line before that is also quite stripped down from what I would use 
in the case I'm actually interested in:

"$1 -i$I -$2 -$3 -$4 -o$3/$J.out > /dev/null";

But it contained the elements that I wanted to test.  Anyway, thanks, 
because the problem seems to have been the quotes.  I thought I needed 
the quotes to force substitution of $1, $2, etc., but it seems I was wrong.

It's always something simple like that, isn't it?

Thanks,
Matt

Peter Jay Salzman wrote:
> i'm not exactly sure what you're trying to do here, but i'll take a stab
> at what i think you want.
> 
> if you're trying to run a program (say, ls) on the various input files
> (say, hello.in) and redirect output to a similarly named output file
> (say, hello.out), instead of this:
> 
> 
> for I in *.in
> do
>     J=`basename $I .in`
>     "$1 > $J.out";
>     "$1";
> done
> 
> 
> don't you want to do this:
> 
> for I in *.in
> do
>    J=`basename $I .in`
>    $1 $I > $J.out;
> done
> 
> 
> 
> or am i not understanding the problem correctly?
> 
> pete
> 
> 
> 
> begin Matt Holland <mdholland@ucdavis.edu> 
> 
>>Hey all, I'm trying to automate some grunt work, and for the life of me, 
>>I can't figure out where I'm going wrong.  Here's a simplified version 
>>of what I'm trying to do:
>>
>>-----
>>#!/bin/bash
>>
>># testrun.sh -- run the simulations to be done in the current directory
>>#
>># usage: testrun.sh <prog>
>>#        where <prog> is the program to be run on all of the input files
>>
>>for I in *.in
>>do
>>    J=`basename $I .in`
>>    "$1 > $J.out";
>>    "$1";
>>done
>>-----
>>
>>When I run it, I get:
>>
>>$ testrun.sh hello
>>/home/holland/bin/testrun.sh: hello > 0001.out: command not found
>>hello, world
>>/home/holland/bin/testrun.sh: hello > 0002.out: command not found
>>hello, world
>>/home/holland/bin/testrun.sh: hello > 0003.out: command not found
>>hello, world
>>/home/holland/bin/testrun.sh: hello > 0004.out: command not found
>>hello, world
>>
>>So it seems that something is wrong with my output redirection, but each 
>>of the commands that it complains about works fine if I paste it into 
>>the terminal directly (also using bash).
>>
>>Any ideas?
>>
>>Thanks,
>>Matt
>>
>>-- 
>>Matt Holland
>>Population Biology Graduate Group
>>University of California, Davis
>>
>>_______________________________________________
>>vox-tech mailing list
>>vox-tech@lists.lugod.org
>>http://lists.lugod.org/mailman/listinfo/vox-tech
> 
> 


-- 
Matt Holland
Population Biology Graduate Group
University of California, Davis