precisions sur fonctionnement heredoc

This commit is contained in:
hugogogo
2021-11-17 22:03:05 +01:00
parent 860c4daaf0
commit e715c09de1

View File

@@ -1,5 +1,6 @@
## TESTS SIGNAUX WITH HERE-DOCS : ## TESTS SIGNAUX WITH HERE-DOCS :
**bash** **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 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 et j'ai mis a gauche le compte des lignes de heredocs cumulés depuis le debut du process
```text ```text
@@ -54,11 +55,26 @@ et j'ai mis a gauche le compte des lignes de heredocs cumulés depuis le debut d
[bash]$ [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) - le texte de warning ne decrit pas la ligne du heredoc au niveau de laquelle ^D a ete pressé
et quand il rencontre un DELIMITER ca compte pour deux lignes (DELIMITER + '\n' je pense)
- 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 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 : 3. heredoc avec un echo interrompu par un Ctrl-D saute un ligne avant le nouveau prompt, mais pas heredoc avec un cat :
```text ```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 : 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 ```text
[bash]$ cat << EOF > file.txt [bash]$ cat << EOF > file.txt
> hello > hello
@@ -86,7 +102,8 @@ avec Ctrl-D :
hello hello
test test
``` ```
avec Ctrl-C
- avec Ctrl-C
```text ```text
[bash]$ cat << EOF > file.txt [bash]$ cat << EOF > file.txt
> bonjour > bonjour