grupy poleceń bash: Dlaczego nawiasy klamrowe wymagają średnika?

Znam różnicę w celu między nawiasami() i nawiasy klamrowe{} kiedy polecenia grupujące w bash.

Ale dlaczego konstrukcja nawiasów klamrowych wymaga średnika po ostatniej komendzie, podczas gdy dla konstrukcji w nawiasach średnik jest opcjonalny?

$ while false; do ( echo "Hello"; echo "Goodbye"; ); done
$ while false; do ( echo "Hello"; echo "Goodbye" ); done
$ while false; do { echo "Hello"; echo "Goodbye"; }; done
$ while false; do { echo "Hello"; echo "Goodbye" }; done
bash: syntax error near unexpected token `done'
$ 

Szukam wglądu, dlaczego tak jest. Nie szukam odpowiedzi takich jak ”, ponieważ dokumentacja tak mówi„ lub „ponieważ został tak zaprojektowany”. Chciałbym wiedziećczem zostało zaprojektowane w ten sposób. A może to tylko historyczny artefakt?

Można to zaobserwować w co najmniej następujących wersjachgrzmotną:

GNU bash, wersja 3.00.15 (1) -release (x86_64-redhat-linux-gnu)GNU bash, wersja 3.2.48 (1) -release (x86_64-apple-darwin12)GNU bash, wersja 4.2.25 (1) -release (x86_64-pc-linux-gnu)

questionAnswers(1)

yourAnswerToTheQuestion