Ciao a tutti
Ho creato un programma che utilizza anche una libreria statica e lo compilo tramite un Makefile.
Il programma deve stampare una lista di tutte le parole chiave, che trova nel file che gli passo come secondo parametro, che trova in un testo, che è il file che gli passo come primo parametro, sul file che gli passo come terzo parametro con il numero delle righe in cui compaiono. Questo programma funziona correttamente.
Devo creare uno script che utilizzi questo programma e riceve come parametri: il primo è la parola chiave da cercare e gli altri sono file txt in cui cercare la parola chiave; deve stampare a schermo il nome dei file con le righe in cui compare la parola, per esempio:

file1.txt
1
file2.txt
4
8

Non sono molto pratica con gli script, ho scritto questo però mi da degli errori e non mi restituisce il risultato atteso.
La logica però non mi sembra sbagliata.

codice:
#!/bin/bash
parola=$1  #la parola da cercare
n=$#  #n è il numero degli argmenti
i=2

make

touch paroleChiave.txt  #creo il file paroleChiave.txt nel quale poi scrivo la parola da cercare nei vari file e che diventa il primo argomento per il programma
cat $1 > paroleChiave.txt  #scrivo il primo argomento dello script (la parola chiave da cercare) nel file
touch risultato.txt  #creo il file risultato.txt nel quale ho l'output del programma
touch ris.txt  #creo il file ris.txt nel quale ho il risultato completo

for (( i; i<n; i++ )) 
 do
  cat $i >> ris.txt #scrivo il nome del file nel risultato
  ./progetto paroleChiave.txt $i risultato.txt
  cat risultato.txt >> ris.txt #concateno l'output del programma al file dove tengo il risultato completo che poi visualizzo a schermo
 done

cat ris.txt #visualizzo il contenuto del file
Grazie a tutti!