diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-06-03 14:43:56 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-06-03 14:43:56 +0200 |
commit | 08218013499f76e61691d5ffa697465f800bd3a7 (patch) | |
tree | 23e34724adfb1aad3a6954c545fa3faef0ee9c71 | |
parent | 6f22624a913e29c6a7088718bd3fd6052f917cc1 (diff) |
hush: document a TODO in export builtin
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | shell/hush.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/shell/hush.c b/shell/hush.c index de04c015a..a6db16c35 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -44,14 +44,28 @@ * * Bash stuff (maybe optionally enable?): * &> and >& redirection of stdout+stderr - * Brace expansion + * Brace Expansion * reserved words: [[ ]] function select * substrings ${var:1:5} * * TODOs: * grep for "TODO" and fix (some of them are easy) - * builtins: ulimit + * builtins: ulimit, local * follow IFS rules more precisely, including update semantics + * export builtin should be special, its arguments are assignments + * and therefore expansion of them should be "one-word" expansion: + * $ export i=`echo 'a b'` # export has one arg: "i=a b" + * compare with: + * $ ls i=`echo 'a b'` # ls has two args: "i=a" and "b" + * ls: cannot access i=a: No such file or directory + * ls: cannot access b: No such file or directory + * Note1: same applies to local builtin when we'll have it. + * Note2: bash 3.2.33(1) does this only if export word itself + * is not quoted: + * $ export i=`echo 'aaa bbb'`; echo "$i" + * aaa bbb + * $ "export" i=`echo 'aaa bbb'`; echo "$i" + * aaa * * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */ |