Ajouter une entrée à un fichier existant avec Bash

Je travaille sur une application d’enregistrement de bibliothèque (pour l’école).

Je dois être en mesure de collecter les entrées de l’utilisateur et d’écrire dans un fichier existant (append un nouvel enregistrement). Cependant, lorsque j’essaie de le faire, j’obtiens l’erreur suivante:

./minilib.sh: line 12: : No such file or directory 

Voici ma fonction pour append de nouveaux enregistrements

 records = "/lib_records.txt" add_book(){ echo echo "Enter Book Name:" read name echo "Enter Book Author:" read author_name echo "$name $author_name" >> "$records" #this is my line 12 } 

Toute idée de ce qui peut causer l’erreur? Toute aide est grandement appréciée. Voici les permissions de fichier:

 -rwxrwxrwx. 1 GSUAD\ GSUAD\domain^users 0 Oct 30 18:04 lib_records.txt -rwxrwxrwx. 1 GSUAD\ GSUAD\domain^users 1253 Oct 30 18:40 minilib.sh 

Voici 2 problèmes pour votre script shell:

  1. records="./lib_records.txt" : ne devrait pas avoir d’espace avant et après =
  2. "./lib_records.txt" au lieu de "/lib_records.txt"

Voici un script modifié pour vous.

 records="./lib_records.txt" add_book(){ echo echo "Enter Book Name:" read name echo "Enter Book Author:" read author_name echo "$name $author_name" >> "$records" #this is my line 12 } add_book 

Vous ne devez pas stocker le fichier dans / directory ( /lib_records.txt ), car vous obtiendrez probablement une erreur de refus d’autorisation . Deuxièmement, supprimez les espaces dans la première ligne.