Shell

Sintaxes completas representadas por Diagrama Sintático - Diagrama de Sintaxe (ver convenções) ou BNF (ver convenções).
Diagrama Sintático - Diagrama de Sintaxe | Diagrama Sintático - Diagrama de Sintaxe e BNF | BNF
1. complete_command complete_command : list separator?
Diagrama Sintático - Diagrama de Sintaxe Shell complete_command
2. list list : and_or {separator_op and_or}
Diagrama Sintático - Diagrama de Sintaxe Shell list
3. and_or and_or : pipeline {and_or ('&&' | '||') linebreak pipeline}
Diagrama Sintático - Diagrama de Sintaxe Shell and_or
4. pipeline pipeline : '!'? pipe_sequence
Diagrama Sintático - Diagrama de Sintaxe Shell pipeline
5. pipe_sequence pipe_sequence : command {('|' linebreak) command}
Diagrama Sintático - Diagrama de Sintaxe Shell pipe_sequence
6. command command : simple_command | compound_command redirect_list? | function_definition
Diagrama Sintático - Diagrama de Sintaxe Shell command
7. compound_command compound_command : brace_group | subshell | for_clause | case_clause | if_clause | while_clause | until_clause
Diagrama Sintático - Diagrama de Sintaxe Shell compound_command
8. subshell subshell : '(' compound_list ')'
Diagrama Sintático - Diagrama de Sintaxe Shell subshell
9. compound_list compound_list : newline_list? term separator?
Diagrama Sintático - Diagrama de Sintaxe Shell compound_list
10. term term : and_or {separator and_or}
Diagrama Sintático - Diagrama de Sintaxe Shell term
11. for_clause for_clause : for name linebreak [in [wordlist] sequential_sep] do_group
Diagrama Sintático - Diagrama de Sintaxe Shell for_clause
12. wordlist wordlist : wordlist: WORD+
Diagrama Sintático - Diagrama de Sintaxe Shell wordlist
13. case_clause case_clause : case WORD linebreak in linebreak (case_list|case_list_ns|'') esac
Diagrama Sintático - Diagrama de Sintaxe Shell case_clause
14. case_list_ns case_list_ns : case_list? case_item_ns
Diagrama Sintático - Diagrama de Sintaxe Shell case_list_ns
15. case_list case_list : case_item+
Diagrama Sintático - Diagrama de Sintaxe Shell case_list
16. case_item_ns case_item_ns : '('? pattern ')'compound_list? linebreak
Diagrama Sintático - Diagrama de Sintaxe Shell case_item_ns
17. case_item case_item : '('? pattern ')' (linebreak|compound_list) ';;' linebreak
Diagrama Sintático - Diagrama de Sintaxe Shell case_item
18. pattern pattern : WORD { '|' WORD }
Diagrama Sintático - Diagrama de Sintaxe Shell pattern
19. if_clause if_clause : if compound_list then compound_list [{elif compound_list then} else compound_list] fi
Diagrama Sintático - Diagrama de Sintaxe Shell if_clause
20. while_clause while_clause : while compound_list do_group;
Diagrama Sintático - Diagrama de Sintaxe Shell while_clause
21. until_clause until_clause : until_clause: until compound_list do_group;
Diagrama Sintático - Diagrama de Sintaxe Shell until_clause
22. function_definition function_definition : fname '()' linebreak function_body
Diagrama Sintático - Diagrama de Sintaxe Shell function_definition
23. function_body function_body : compound_command redirect_list?
Diagrama Sintático - Diagrama de Sintaxe Shell function_body
24. fname fname : NAME
Diagrama Sintático - Diagrama de Sintaxe Shell fname
25. brace_group brace_group : '{' compound_list '}'
Diagrama Sintático - Diagrama de Sintaxe Shell brace_group
26. do_group do_group : do compound_list done
Diagrama Sintático - Diagrama de Sintaxe Shell do_group
27. simple_command simple_command : cmd_prefix? cmd_name cmd_suffix?
Diagrama Sintático - Diagrama de Sintaxe Shell simple_command
28. cmd_name cmd_name : WORD
Diagrama Sintático - Diagrama de Sintaxe Shell cmd_name
29. cmd_prefix cmd_prefix : cmd_prefix: (io_redirect | ASSIGNMENT_WORD)+
Diagrama Sintático - Diagrama de Sintaxe Shell cmd_prefix
30. cmd_suffix cmd_suffix : ( io_redirect | WORD)+
Diagrama Sintático - Diagrama de Sintaxe Shell cmd_suffix
31. redirect_list redirect_list : io_redirect+
Diagrama Sintático - Diagrama de Sintaxe Shell redirect_list
32. io_redirect io_redirect : IO_NUMBER?( io_file | io_here)
Diagrama Sintático - Diagrama de Sintaxe Shell io_redirect
33. io_file io_file : ('<' | '<&' | '>' | '>&' | '>>' | '<>' | '>|') filename
Diagrama Sintático - Diagrama de Sintaxe Shell io_file
34. filename filename : WORD
Diagrama Sintático - Diagrama de Sintaxe Shell filename
35. io_here io_here : ('<<' | '<<-') here_end
Diagrama Sintático - Diagrama de Sintaxe Shell io_here
36. here_end here_end : WORD
Diagrama Sintático - Diagrama de Sintaxe Shell here_end
37. newline_list newline_list : newline_list? NEWLINE
Diagrama Sintático - Diagrama de Sintaxe Shell newline_list
38. linebreak linebreak : newline_list | ''
Diagrama Sintático - Diagrama de Sintaxe Shell linebreak
39. separator_op separator_op : '&' | ';'
Diagrama Sintático - Diagrama de Sintaxe Shell separator_op
40. separator separator : separator_op linebreak | newline_list
Diagrama Sintático - Diagrama de Sintaxe Shell separator
41. sequential_sep sequential_sep : ';' linebreak | newline_list
Diagrama Sintático - Diagrama de Sintaxe Shell sequential_sep