web-dev-qa-db-fra.com

Nano - insérer du contenu, enregistrer et quitter

Je travaille actuellement sur la création d'un fichier texte de l'ensemble du processus de configuration de mon serveur pour mon utilisation normale.

Et aimerait savoir s’il est possible d’écrire un script Shell afin que je puisse faire en sorte que le "nano" insère du contenu, le sauvegarde, le quitte, puis continue avec le reste de mes commandes.

Parce que quand je mets tout cela dans le script shell:

Sudo nano /etc/Apache2/conf-available/fqdn.conf
ServerName localhost
Sudo a2enconf fqdn

Ensuite, il affiche l'éditeur de fichier "nano" avec ce contenu:

ServerName localhost
Sudo a2enconf fqdn

Bien, alors que je voulais le sauvegarder et quitter après le ServerName localhost, afin que mon script puisse continuer.

Cela serait-il possible de toute façon?

3
Mark Topper

J'ai peut-être mal compris votre question. SHH n'existe pas, voulez-vous dire SH ou SSH? Ou peut-être Bash? (EDIT: apporté une modification pour résoudre ce problème)

Quoi qu'il en soit, nano ne sera pas d'une grande aide ici. echo sera.

echo "ServerName localhost" > /etc/Apache2/conf-available/fqdn.conf
Sudo a2enconf fqdn

Le code Shell ci-dessus enverra votre texte dans le fichier. Remplacer > par >> l'ajoutera à la place, si c'est ce que vous recherchez.

Si vous avez besoin de privilèges root pour écrire dans ce fichier, utilisez tee à la place d'une simple redirection de shell (>/>>). Cela vous permettra d’utiliser Sudo correctement:

echo -e "ServerName localhost" | Sudo tee -a /etc/Apache2/conf-available/fqdn.conf
Sudo a2enconf fqdn

nano est ici pour que vous, l'utilisateur, puissiez écrire des données manuellement dans un fichier. Toutefois, si vous recherchez un processus automatisé, vous n'avez pas besoin d'un éditeur, coreutils peut le gérer parfaitement. Linux n'a pas besoin de l'interface fantaisie nano pour écrire dans un fichier.

6
John WH Smith