From e715c09de1e9d6d5b921c49b83a68f963608ec13 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Wed, 17 Nov 2021 22:03:05 +0100 Subject: [PATCH] precisions sur fonctionnement heredoc --- README.md | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d1583d1..8c795d4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ## TESTS SIGNAUX WITH HERE-DOCS : **bash** + 1. dans l'exemple ci-dessous j'ecris ^D a l'emplacement où je le tape, mais en vrai il n'apparait pas dans bash et j'ai mis a gauche le compte des lignes de heredocs cumulés depuis le debut du process ```text @@ -54,11 +55,26 @@ et j'ai mis a gauche le compte des lignes de heredocs cumulés depuis le debut d [bash]$ ``` -le texte de warning ne decrit pas la ligne du heredoc au niveau de laquelle ^D a ete pressé -il decrit la premiere ligne de chaque heredoc (donc peut importe qu'on ai fait un heredoc de 1 ligne ou de 25 lignes, il donne le numero de la premiere), plus le nombre total de lignes de tous les heredocs depuis le debut du process (j'ai l'impression) -et quand il rencontre un DELIMITER ca compte pour deux lignes (DELIMITER + '\n' je pense) + +- le texte de warning ne decrit pas la ligne du heredoc au niveau de laquelle ^D a ete pressé + +- il decrit la premiere ligne de chaque heredoc (donc peut importe qu'on ai fait un heredoc de 1 ligne ou de 25 lignes, il donne le numero de la premiere), plus le nombre total de lignes de tous les heredocs depuis le debut du process (j'ai l'impression) + +- et quand il rencontre un DELIMITER ca compte pour deux lignes (DELIMITER + '\n' je pense) 2. Ctrl-C quite le mode heredoc a n'importe quel moment, Ctrl-D quite le mode heredoc avec un message, uniquement si le curseur est vide +```text +[bash]$ cat << EOF +> ^C +[bash]$ cat << EOF +> sdfdffs^C +[bash]$ cat << EOF +> ^D bash: warning: here-document at line 3 delimited by end-of-file (wanted `EOF') +[bash]$ cat << EOF +> blablabla^Dblabla^D^D^Dblabla ^D blabla +> ^D bash: warning: here-document at line 5 delimited by end-of-file (wanted `EOF') +[bash]$ cat << EOF +``` 3. heredoc avec un echo interrompu par un Ctrl-D saute un ligne avant le nouveau prompt, mais pas heredoc avec un cat : ```text @@ -76,7 +92,7 @@ et quand il rencontre un DELIMITER ca compte pour deux lignes (DELIMITER + '\n' 4. avec une redirection dans un fichier, le heredoc ecrit dans le fichier a la reception du DELIMITER ou bien d'un Ctrl-D, mais pas d'un Ctrl-C : -avec Ctrl-D : +- avec Ctrl-D : ```text [bash]$ cat << EOF > file.txt > hello @@ -86,7 +102,8 @@ avec Ctrl-D : hello test ``` -avec Ctrl-C + +- avec Ctrl-C ```text [bash]$ cat << EOF > file.txt > bonjour