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 :
**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