Stocker les détails sensibles dans un fichier car le texte brut est risqué. Dans certains cas où vous devez conserver les valeurs des variables, votre meilleure option est de les remplacer de la console. Si vous écrivez un script d'automatisation ou d'autres fichiers tels que YAML, le EnvSubst remplace facilement les variables. Nous verrons comment vous pouvez y aller dans cet article.
Comment fonctionne l'envsubst?
L'envsubst fait le travail de remplacement des variables. Il recherche des modèles à partir de l'entrée, et lorsqu'il trouve une correspondance, il le remplace par la valeur variable. Si le motif ne donne aucune correspondance correspondante, il le remplace par une chaîne vide.
Sa syntaxe de base est la suivante:
1 | $ EnvSubst [Option] [Shell-Format] |
Remplacement des variables dans un fichier
Supposons que vous ayez un fichier texte simple avec des variables qui ne doivent être définies que lorsque vous utilisez le fichier, l'envsubst peut parfaitement gérer le travail.
Créons un échantillon.fichier txt et créer deux variables pour le Nom d'utilisateur et mot de passe.
Pour utiliser EnvSubst, nous devons d'abord exporter les valeurs pour les deux variables:
1 2 3 | $ Export username = ”kaila” |
Avec les variables exportées, vous pouvez désormais invoquer la commande EnvSubst:
1 | $ Envsubst < sample.txt |
Notre sortie pour ce cas sera:
Vous avez utilisé avec succès EnvSubst pour remplacer les valeurs de variable dans un fichier.
Aussi, vous pouvez décollé les variables en tapant décollé, suivi du nom de la variable. Si vous exécutez à nouveau l'envsubst, il affichera le fichier sans les valeurs précédemment définies. Jetez un œil à ce qui suit:
Si vous ne voulez pas que l'envsubst affiche la sortie sur l'espace de travail, vous pouvez le combiner avec le moins commande.
1 | $ Envsubst < sample.txt | less |
Piping EnviSubst Substitution à un autre fichier
Vous devrez peut-être également tuer la sortie dans un autre fichier au lieu de l'afficher sur la console. Par exemple, créons un fichier de configuration que vous pouvez publier sur votre site ou exécuter avec un bot. Dans ce cas, vous ne pouvez pas ajouter de détails confidentiels comme texte en clair. La solution consiste à utiliser EnvSubst.
Créer un sampleconfig.fichier de confr et ajouter le texte comme dans l'image suivante:
User_password =
1 | $ nano saampleconfig.confli |
Notre fichier ressemble à ceci:
Exportons nos variables.
Maintenant, pour utiliser l'envsubst lors de la diffusion de la sortie dans un nouveau fichier, la commande est la suivante:
1 | $ Envsubst < sampleconfig.conf >sortie 1.SMS |
Si nous catdons le contenu du sortie 1.SMS, Nous voyons que la commande fonctionne pour remplacer les variables.
Spécifiant les variables à remplacer
Jusqu'à présent, nous avons vu comment remplacer les variables contenant un signe en dollars. Il est possible de définir deux ou plusieurs variables et de les exporter. Mais nous ne pouvons remplacer ceux spécifiques.
Créons un fichier similaire à ce que nous avions plus tôt et y ajoutons deux autres variables.
Procéder à l'exportation des variables.
Pour spécifier la variable à remplacer, définissez son nom et assurez-vous d'utiliser les apostrophes uniques pour empêcher sa substitution avant la réalisation de l'appel.
Dans notre cas, nous remplaçons le User1.
1 | $ EnvSubst '$ user1' < sampleconfig.conf |
Vous pouvez également remplacer deux variables comme indiqué dans ce qui suit:
1 | $ EnvSubst '$ user1, $ nom d'utilisateur' < sampleconfig.conf |
Il vous suffit de séparer les variables avec une virgule et d'utiliser une seule apostrophe pour enfermer les deux variables, comme indiqué dans l'exemple suivant:
Conclusion
La commande EnvSubst Linux est un excellent outil pour remplacer vos variables dans les fichiers. Il est utile lorsque vous avez besoin de masquer des informations confidentielles telles que des mots de passe et de les remplacer en cas de besoin. La bonne chose avec EnvSubst est que vous pouvez l'utiliser avec différents types de fichiers, tuer sa sortie dans un autre fichier ou même l'utiliser comme entrée pour une autre commande.
Nous avons couvert la commande Envsubst dans ce guide, et les exemples vous aident à visualiser et à comprendre son utilisation avec facilité.