Je ne veux pas écrire le fichier manuellement, j'ai donc fait un shell-script. Existe-t-il un moyen d'écrire et d'enregistrer le fichier automatiquement sans obliger l'utilisateur à appuyer sur les touches?
sudo nano blah
#write stuff to file
#save file
#continue
^ Ce sera dans un fichier * .sh
Ou existe-t-il une autre façon de créer un simple fichier texte dans un script?
$echo "Some text" > afile.txt
?Réponses:
Pour des séquences de commandes plus complexes, vous devriez envisager d'utiliser la
cat
commande avec un document ici . Le format de base estIl existe deux comportements subtilement différents selon que le libellé END_TEXT est cité ou non:
étiquette sans guillemets : le contenu est écrit après les expansions habituelles du shell
étiquette entre guillemets : le contenu du document ici est traité littéralement, sans les extensions de shell habituelles
Par exemple, considérez le script suivant
Les résultats sont
et
Si vous générez des commandes shell à partir de votre script, vous souhaiterez probablement le formulaire cité.
la source
END_TEXT
et d'utiliser simplementCTRL-D
pour signaler la fin de l'entrée. Voir par exemple Comment signaler la fin de l'entrée stdinIl n'est pas nécessaire de jouer avec un éditeur pour ce faire.
Vous pouvez ajouter quelque chose à un fichier avec une simple commande d'écho. Par exemple
Ajoutera "Hello world" au fichier
txt
. si le fichier n'existe pas, il sera créé.Ou si le fichier existe déjà et que vous souhaitez l'écraser
Pour la première ligne: et
Pour les lignes suivantes.
Au plus simple, le
.sh
script pourrait simplement contenir un ensemble de commandes d'écho.la source