[yocto] Bash parser
Isak Lichtenstein
Isak.Lichtenstein at kistler.com
Wed Jul 16 03:32:36 PDT 2014
Hi Olof,
Thank you very much for your prompt answer
>
> On 14-07-16 11:36 +0200, Isak Lichtenstein wrote:
> > In this method I'm using the bash syntax. But a lot of time the parser
> > doesn't manage to parse my file properly. Examples:
> >
> > TMP="file1 file2"
> > read -a scripts <<< $tmp
> > generates
> > ShellSyntaxError: expecting here-document name, got '<'
> >
> > Or
> >
> > TMP="file1 file2"
> > scripts=(${TMP})
> > generate
> > ShellSyntaxError: LexToken(TOKEN,'${TMP}',0,0)
> >
> >
> > Other bash commands are parsed properly, but generate an error while
> > executing them. Example:
> > TMP="file1, file2"
> > tmp=${TMP//,/ }
> > generates
> > Bad substitution
> > | WARNING: exit code 2 from a shell command.
>
> Note that these features you describe here are all bash extensions. For Debian
> users (and I think Ubuntu users as well?), the default /bin/sh is dash and does not
> support either of these extensions. There are cases where the bitbake parser will
> refuse valid portable shell script features as well though, like shell arithmetics, e.g.:
Ubuntu default is actually bash.
>
> n=$((n+1))
>
> > Does a page exist somewhere describing the bash features supported by
> > the parser and also the execution environment?
> > Are arrays supported at all?
>
> I don't know of any such documentation, but if you stick to portable shell script
> features, you should be mostly fine.
>
Thanks for the advice. Will try to stick to it.
Isak
More information about the yocto
mailing list