Comment utiliser le document ici dans la programmation bash

Comment utiliser le document ici dans la programmation bash
Un bloc de code ou de texte qui peut être redirigé vers le script de commande ou le programme interactif est appelé le document ici ou Heredoc. Différents types de langues de script comme Bash, SH, CSH, KSH, etc., peut prendre la saisie du texte directement à l'aide du document ici sans utiliser de fichier texte. Ainsi, lorsque le codeur a besoin de moins de données de texte, alors l'utilisation du code et des données dans le même fichier est la meilleure option, et elle peut être effectuée facilement en utilisant ici-document dans le script. Sans langage de script, le document ici peut également être utilisé dans diverses langues de haut niveau comme PHP, Perl, etc. Comment vous pouvez utiliser ici-document dans le script bash est affiché dans ce tutoriel.

Pour utiliser ici-document dans n'importe quel script bash, vous devez utiliser le symbole << followed by any delimiting identifier after any bash command and close the HereDoc by using the same delimiting identifier at the end of the text. The syntax of writing HereDoc is shown below.

Commande << HeredocDelimiter


Heredocdelimiter

Exemple-1: utilisation du texte Heredoc simple

Lorsque le Heredoc est utilisé dans n'importe quel script, il est nécessaire de garder le même nom pour le délimiteur de démarrage et de fin. Supposons que la commande soit 'chatet le délimiteur Heredoc est AJOUTER DU TEXTE. Créer un fichier de script bash nommé heredoc1.frapper avec le code suivant pour vérifier l'utilisation simple de Heredoc.

#!/ bac / bash
chat <Ce texte est
Ajouté par le document ici
AJOUTER DU TEXTE

Exécutez la commande suivante pour exécuter le script.

$ bash heredoc1.frapper

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script.

Exemple-2: utilisation de Heredoc avec '-' Symbole

Heredoc utilise le '-' symbole pour supprimer n'importe quel espace d'onglet de chaque ligne de texte heredoc. Dans l'exemple suivant, languette L'espace est ajouté au début de chaque ligne, et le '-' le symbole est utilisé avant le délimiteur de démarrage. Lorsque le script s'exécute, tous les espaces d'onglet sont omis du début de chaque ligne, mais il ne crée aucun effet sur l'espace normal. Créer un fichier bash nommé heredoc2.frapper avec le script suivant pour tester la fonction de '-'.

#!/ bac / bash
chat <<-ADDTEXT2
Ligne 1: Le document ici est utile pour imprimer un texte court
Ligne-2: Le document ici peut être utilisé pour formater le texte
Ligne-3: Ici, le document peut imprimer des variables dans le texte
Ligne-4: Ici Document avec '-' Supprime l'espace TAB de la ligne
AddText2

Exécutez la commande suivante pour exécuter le script.

$ bash heredoc2.shot

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script. Le languette L'espace a été supprimé du contenu Heredoc.

Exemple-3: utilisation de la variable dans le texte Heredoc

Créez un nouveau script bash avec le code suivant. Ici, deux variables nommées commencer et terminer sont déclarés. Ces variables sont utilisées dans le texte Heredoc. Si vous utilisez une marque de devis au délimiteur de démarrage de Heredoc, alors la valeur de la variable n'imprimera pas dans la console.

#!/ bac / bash
start = "Bonjour à tous"
end = "bonne chance"
chat <$ start
Bienvenue sur le site de blog Linux.
$ fin
AddText3

Exécutez la commande suivante pour exécuter le script.

$ bash heredoc3.shot

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script. La sortie montre le contenu Heredoc avec la valeur des variables.

Exemple-4: Créez un nouveau fichier bash à l'aide de Herdoc

Dans les exemples précédents, comment vous pouvez utiliser Heredoc dans n'importe quel script bash est affiché. Vous pouvez également créer un nouveau fichier bash à l'aide de Heredoc, illustré dans la partie suivante de ce tutoriel. Créer un nouveau fichier bash nommé heredoc4.shot avec le code suivant. Ici, le nouveaufile La variable est déclarée définir le nom de fichier du nouveau script bash, qui sera créé après l'exécution de heredoc4.shot déposer. Après l'exécution, un nouveau fichier bash nommé sortir.shot sera créé.

#!/ bac / bash
Newfile = sortie.shot
(
chat < $NewFile

Exécutez les commandes suivantes pour tester le script ci-dessus. La première commande exécutera le fichier de script principal. La deuxième commande affichera le contenu du fichier nouvellement créé. La troisième commande exécutera le fichier bash nouvellement créé.

$ bash heredoc4.shot
$ la production de chat.shot
$ BASH SORTIE.shot

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script.

Exemple-5: Utilisation de la fonction avec Heredoc

Vous pouvez transmettre des valeurs d'entrée aux variables de toute fonction du script bash à partir du contenu Heredoc. Créer un autre nouveau fichier bash nommé heredoc5.shot pour tester comment la fonction peut être utilisée avec Heredoc. Ajouter le code suivant au fichier. Une fonction nommée Bookinfo est déclaré dans le script, qui prendra les données du texte heredoc. Six variables sont déclarées dans la fonction nommée ISBN, bookname, authorname, édition, publication et prix. Pour définir correctement la valeur des variables, vous devez maintenir l'ordre des valeurs dans la section Heredoc en fonction des variables déclarées dans la fonction. Après avoir réglé les données dans les variables de fonction, la valeur de prix est calculée par une remise de 10% et imprimé les valeurs de toutes les variables de la console.

#!/ bac / bash
#DECLARE LA FONCTION QUI SERA RÉCLAMER DES DONNÉES DU DOCUMENT
Bookinfo ()

Lire ISBN
Lire BookName
Lire Authorname
Édition de lecture
Lire la publication
lire le prix

# Déclarez ici la partie document pour envoyer des données dans la fonction
Bookinfo <ISBN-78633567809
Easy Laravel 5
W. Jason Gilmore
9e édition
Learpub
100
AddText5
# Imprimer la valeur des variables de fonction après avoir calculé la valeur des prix avec une remise de 10%
((prix = $ prix - prix * 10/100))
Echo "$ bookname"
écho "$ authorname"
Echo "$ edition, $ publication"
Echo "$" $ prix

Exécutez la commande suivante pour exécuter le script.

$ heredoc5.frapper

Sortir:

Ici, la valeur de la variable de prix a été fixée à 100. Après avoir fixé une réduction de 10% sur la valeur du prix, la valeur a été fixée à 90. Après l'exécution, la sortie suivante apparaîtra dans le terminal.

Exemple-6: Exécutez des commandes à l'intérieur du Heredoc

Créer un fichier bash nommé heredoc6.frapper avec le script suivant à exécuter «Date», «Pwd», et 'qui suis je'Commande avec'Sudo' commande.

#!/ bac / bash
# Ajouter trois commandes à l'intérieur du contenu Heredoc avec la commande 'sudo'
sudo -s <date
PWD
qui suis je
COMMANDE

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. La sortie des trois commandes a été imprimée dans la sortie.

Exemple-7: utilisation de Heredoc pour écrire plusieurs lignes dans un fichier

Créer un fichier bash nommé heredoc6.frapper avec le script suivant pour ajouter plusieurs lignes dans le fichier texte nommé temp.SMS et imprimer le contenu du fichier. Trois lignes seront ajoutées au fichier texte après avoir exécuté le code.

#!/ bac / bash
: «Ce script écrira plusieurs lignes
dans un fichier texte
'
# Écrivez plusieurs lignes dans un fichier en utilisant Heredoc
chat> 'temp.SMS' <Bash est une langue de script populaire.
De nombreuses tâches administratives peuvent être effectuées facilement
en utilisant le script bash.
File d'accès
# Imprimez le contenu du fichier
tempor.SMS

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. La sortie montre que trois lignes sont ajoutées dans le temp.SMS déposer.

Exemple-8: Utilisation de Heredoc avec tuyau pour rechercher et remplacer le contenu

L'entrée Heredoc peut également être tube. Créez un fichier bash avec le script suivant pour rechercher et remplacer un personnage particulier à partir du contenu Heredoc. Le premier Heredoc imprimera le texte d'origine, et le deuxième Heredoc imprimera le texte remplacé. La commande 'SED' a été utilisée ici pour remplacer toutes les instances du caractère 'un' par 'UN'.

#!/ bac / bash
Echo "Le contenu original est:"
chat <<'ORIGINAL'
Bash est une langue de script shell
HTML est une langue de balisage
JavaScript est un langage de script côté client
ORIGINAL
# Ajouter une nouvelle ligne
écho
Echo "Le contenu après avoir remplacé 'a' par 'a':"
chat <<'REPLACE' | sed 's/a/A/g'
Bash est une langue de script shell
HTML est une langue de balisage
JavaScript est un langage de script côté client
REMPLACER

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. Dans la sortie, tous «A» ont été remplacés par «a».

Exemple-9: utilisation de Heredoc pour commenter le bloc des lignes

L'une des utilisations importantes de Heredoc est de commenter plusieurs lignes du script bash. Créez un fichier bash avec le script suivant pour trouver une année est une année de saut ou non. Le but du script a été décrit par des commentaires multi-lignes à l'aide de Heredoc.

#!/ bac / bash
<Ce script est utilisé pour découvrir
une année est une année saut ou non
année bissextile
Multiline_comment
# Prenez la valeur de l'année à 4 chiffres de l'utilisateur
Echo -n "Entrez la valeur de l'année à quatre chiffres:"
Lire yr
# Vérifier la valeur de l'année prise est un saut ou pas une année de saut
si [$ (($ yr% 400)) -eq 0]; alors
Echo "$ an est une année de saut."
elif [$ (($ yr% 100)) -eq 0]; alors
Echo "$ an n'est pas une année de saut."
elif [$ (($ yr% 4)) -eq 0]; alors
Echo "$ an est une année de saut."
autre
Echo "$ an n'est pas une année de saut."
Fi

Sortir:

La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. La sortie suivante montre que 2008 est une année de saut et 2021 n'est pas une année de saut.

Conclusion:

Les différentes utilisations du document Heredoc se sont montrées dans ce tutoriel en utilisant plusieurs exemples. Il peut être utilisé avec différents types de commandes de shell et ajoutant des commentaires multi-lignes dans le script bash. Les utilisations du Heredoc seront effacées pour les utilisateurs de bash après avoir pratiqué les exemples de ce tutoriel.