I have a program in C, which takes 2 arguments, filename and text. I want to write a script in bash, which also take 2 arguments, path and file extension, will iterate through all files in given path and give to my program in C as argument files with the givenextension only and text.
Heres my program in C, nothing special really:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if(argc < 3)
{
fprintf(stderr, "Give 2 args!\n");
exit(-1);
}
char *arg1 = argv[1];
char *arg2 = argv[2];
fprintf(stdout, "You gave: %s, %s\n", arg1, arg2);
return 0;
}
and my bash script:
#!/bin/bash
path=$1
ext=$2
text=$3
for file in $path/*.$ext
do
./app |
{
echo $file
echo $text
}
done
I use it like this: ./script /tmp txt hello
and it should give as arguments all txt
files from /tmp
and 'hello' as text to my C program. No it only shows Give 2 args!
:( Please, help.