Commande Cat Inattendue délimitée par la fin du fichier

J’ai le script

#!/bin/bash set i=0; while read line do echo "$line"; $i < cat "my.log" | grep -w "$line" | wc -l; echo "$i"; if [ "$i" == 0 ]; then cat $line << "notfound.txt" fi i=0; done < "test.txt" 

qui donne l’erreur

 ./test.sh: line 13: warning: here-document at line 10 delimited by end-of-file (wanted `notfound.txt') ./test.sh: line 14: syntax error: unexpected end of file 

Mon objective est de tester la valeur de la variable i. Si c’est 0 alors je voudrais redirect la valeur stockée dans la variable $ line vers un fichier “notfound.txt”

Au lieu de

 cat $line << "notfound.txt" 

dire:

 echo $line > "notfound.txt" 

Vous ne cat pas cat variables, vous faites echo celles-ci. command > file redirectait la sortie de la commande vers le fichier , en écrasant celle-ci. Si vous souhaitez append le fichier, utilisez plutôt >>

Vous pouvez en apprendre plus sur la redirection ici .