Création d'un fichier avec du contenu dans les scripts Shell


20

Je suis un peu nouveau dans Shell Scripting et je veux créer un nouveau fichier à l'intérieur du script et je veux ajouter du contenu, puis le fermer. Il ne doit pas prendre les arguments de l'utilisateur. Tout depuis le chemin et le contenu est prédéfini. Comment puis-je le faire?

Réponses:


24

Utilisez simplement la redirection de sortie. Par exemple

#!/bin/bash

echo "some file content" > /path/to/outputfile

Le >écriront tous stdinfournis par le stdoutd' echoau dossier outputfileici.

Alternativement, vous pouvez également utiliser teeet un tuyau pour cela. Par exemple

echo "some file content" | tee outputfile

N'oubliez pas que l'un des exemples remplacera un existant outputfile.

Si vous devez ajouter un fichier existant, utilisez à la >>place de >ou tee -a.

Si vous n'acceptez pas d'entrée utilisateur sur cette ligne, aucune entrée utilisateur ne peut modifier le comportement ici.


Pour les personnes qui souhaitent avoir un
saut de

18

Je pense qu'il est préférable d'utiliser un doc ici pour créer un nouveau fichier dans un script. Il est plus propre, ce qui, à mon avis, encourage la lisibilité.

Par exemple:

cat > filename <<- "EOF"
file contents
more contents
EOF

L' "-"en <<-est facultative, permettant indentations qui sera à onglets dépouillèrent lorsque le fichier est créé. Les citations autour de la "EOF""doc ici" empêchent toute substitution.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.