UNIX: Qu’est-ce que c’est ====== pour?

Quels sont les ============= dans le programme ci-dessous? Cette section est-elle nécessaire ou s’agit-il d’un bloc de commentaires qui peut être retiré? Je suis un peu nouveau sur UNIX, alors j’essaie de lire le code pour le comprendre et je ne sais pas pourquoi c’est comme ça. En outre, qu’est-ce que l’EOF en dessous signifie. Je ne suis pas sûr de la signification de cette ligne non plus. Quelqu’un peut-il expliquer s’il vous plaît? Merci d’avance

#!/bin/bash usage() { cat <<-EOF ======================================================== Usage: $0 Choose either y or n in "do you want to continue" Choose from option A - E in mainmenu to perform actions. ======================================================== EOF } 

Cette question “Comment” chat << EOF "fonctionne-t-il en bash?" explique comment cat peut être utilisé pour “ici les documents”.

Cette question sur Comment puis-je écrire un heredoc dans un fichier en script Bash? a également des réponses détaillées sur l’utilisation spécifique de cat pour cela et contient cet exemple qui écrit le contenu dans un fichier:

 cat << EOF > /tmp/yourfilehere These contents will be written to the file. This line is indented. EOF 

Dans la section Advanced Bash-Scripting Guide sur here-docs:

Un document ici est un bloc de code spécial. Il utilise une forme de redirection d’E / S pour alimenter une liste de commandes vers un programme interactif ou une commande, telle que ftp, cat ou l’éditeur de texte ex.

Dans ce cas, le ======================================================== est simplement du contenu textuel à afficher.

En regardant votre code, le heredoc est défini dans une méthode appelée usage qui semble être appelée par error_exit() , donc j’imagine qu’il est là pour afficher un message sur l’utilisation du script pour les utilisateurs qui saisissent des options incorrectes.

EOF est une “fin de fichier” – considérez-le comme le début et la fin du contenu heredoc.

En réponse à votre question si le ======================================================== peut être retiré – oui, il peut. Tout ce qui se passera, c’est qu’il ne sera plus affiché à l’utilisateur. Cependant, ne retirez pas l’ EOF !