Bonjour,
Une petite question de débutant auquelle je n'arrive pas à avoir de réponse :
J'ai un très long script qui m'installe et me paramètre tout linux après une fresh install.
Cependant, pour les fichiers de configuration de daemon (et même les autres), je dois modifier certaines variables manuellement car il y a des remplacement de valeur à faire (comme pour SSH, deny hosts, etc…)
Ma question est : Ces fichiers sont-ils appelé comme des scripts qui initialisent les variables ou sont-il lu lignes par lignes?
Le but étant de simplement faire un rajout de variable (en doublon) via un script plutôt que de faire un long script de lecture/test/remplacement/réécriture de la variable.
Il y a-t-il (déjà eu) des cas où l'ordre ou la duplication des variables posent problème?
Merci d'avance!
# langage
Posté par nono14 (site web personnel) . Évalué à 2.
Variable d'environnement ou paramètre dans un fichier ?
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
# Facile !
Posté par Sébastien Maccagnoni (site web personnel) . Évalué à 1.
Salut,
Tous les logiciels ne fonctionnent pas de la même manière et les deux cas que tu évoques peuvent être rencontrés.
Par contre, je ne vois pas beaucoup de difficultés dans ce que tu demandes.
en gros, tu peux faire un truc dans ce genre :
… ce n'est pas si long que ça…
[^] # Re: Facile !
Posté par Cyril Brulebois (site web personnel) . Évalué à 1.
Effectivement. C'est d'ailleurs l'occasion rêvée d'apprendre à faire un peu plus avec sed, comme la suppression ou l'ajout de ligne(s), en plus de la très connue substitution. ;)
Debian Consultant @ DEBAMAX
# for
Posté par Ovopack . Évalué à 1. Dernière modification le 14 octobre 2014 à 22:39.
C'est bien ce que je pensais. Je me doutait que faire un doublon de variable dans un fichier de conf pourrait poser problème, même si je suppose que pour la plupart ces fichiers sont éxecuté comme des scripts.
PS : je parlais des scripts de configuration en général mais là où je butait surtout c'est ceux placés dans /etc/ssh/sshd.conf /etc/denyhosts.conf et d'autre même type.
Pour ta ligne de commande, je suis volontier preneur mais je ne connais pas sed et je n'utilise grep que via les pipes. Je voyais plutôt quelque chose du genre (non testé et surement faux) :
Est-ce que tu peux détailler la commande?
Merci pour les réponses!
[^] # Re: for
Posté par Ovopack . Évalué à 0.
Je crois avaoir compris :
grep '=' fichier.conf
Récupère les occurences paramètre= du fichier conf
&& sed -i 's/=.*/=/' fichier.conf
Envoie à sed avec backup et substitu ancienparamètre=.* par le nouveau
|| echo '=' >> fichier.conf
En cas d'erreur, on crée le fichier.
Je passe en résolu.
Merci à tous!
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.