diff --git a/gash/environment.scm b/gash/environment.scm index 97d02c1..7bff897 100644 --- a/gash/environment.scm +++ b/gash/environment.scm @@ -71,7 +71,7 @@ ((equal? name "@") (string-join (cdr (%command-line)))) ((equal? name "#") - (number->string (length (%command-line)))) + (number->string (length (cdr (%command-line))))) (else (or (assoc-ref %global-variables name) (if (shell-opt? "nounset") (begin diff --git a/gash/grammar.scm b/gash/grammar.scm index 5e096a1..b7c7caa 100644 --- a/gash/grammar.scm +++ b/gash/grammar.scm @@ -133,7 +133,7 @@ rpar < ')' bt < [`] - variable <-- dollar ('*' / '@' / [0-9] / name / + variable <-- dollar ('#' / '@' / '*' / [0-9] / name / lbrace name (variable-literal / &rbrace) rbrace) variable-subst <- dollar lbrace (variable-or / variable-and / variable-regex) rbrace variable-or <-- name min variable-word variable-word*