Après discussion avec un autre étudiant, il ne faut pas gérer l'ouverture de l’entrée standard (qui s'ouvre, dans bash, si on finit une commande par un pipe).
Il faut un syntax error qui stoppe comme pour les autres erreurs de syntaxe :
ls |
On verra ensuite pour gérer le fait que bash ouvre quand meme les heredocs (peut-être envoyer un tableau qui ne contiendra que les heredocs qui étaient corrects avant l'arrivée de la syntax error).
ls | cat << stop | ls -la | cat << stop1 | ls | cat << stop2 | <<stop3 ls -la > > out | cat << stop3
BASH:~/$ ls < < | << stop
bash: syntax error near unexpected token `<'
BASH:~/$ << stop | ls < <
bash: syntax error near unexpected token `<'
> stop
BASH:~/$ << stop | ls < < | << coucou | ls < <
bash: syntax error near unexpected token `<'
> stop
BASH:~/$ ls < < | << stop
bash: syntax error near unexpected token `<'
BASH:~/$
Après discussion avec un autre étudiant, il ne faut pas gérer l'ouverture de l’entrée standard (qui s'ouvre, dans bash, si on finit une commande par un pipe). Il faut un syntax error qui stoppe comme pour les autres erreurs de syntaxe :
ls |
On verra ensuite pour gérer le fait que bash ouvre quand meme les heredocs (peut-être envoyer un tableau qui ne contiendra que les heredocs qui étaient corrects avant l'arrivée de la syntax error).
ls | cat << stop | ls -la | cat << stop1 | ls | cat << stop2 | <<stop3 ls -la > > out | cat << stop3