I’m writing a bash script called ‘run’ that tests programs with pre-defined inputs.
It takes in a file as the first parameter, then a program as a second parameter.
The call would look like
./run text.txt ./check
for example, the program ‘run’ would run ‘check’ with text.txt as the input. This will save me lots of testing time with my programs.
right now I have
$2 < text.txt > text.created
So it takes the text.txt and redirects it as input in to the program specified, which is the second argument. Then dumps the result in text.created.
I have the input in text.txt and I know what the output should look like, but when I cat text.created, it’s empty.
Does anybody know the proper way to run a program with a file as the input? This seems intuitive to me, but could there be something wrong with the ‘check’ program rather than what I’m doing in the ‘run’ script?
Thanks! Any help is always appreciated!
EDIT: the file text.txt contains multiple lines of files that each have an input for the program ‘check’.
That is, text.txt could contain
asdf1.txt
asdf2.txt
asdf3.txt
I want to test check with each file asdf1.txt, asdf2.txt, asdf3.txt.
A simple test with
works fine. Call that file “run” and run it with
I get the program
./checkexecuted withtext.txtas the parameters. Don’t forget tochmod +x runto make it executable.This is the sample check program that I use:
Which prints the given parameters.
My file
text.txtis:and the files
textfile1.txt, … contain one line each for every instance of “check”, for example:or
The output: