From: William Mills <wmills@ti.com>
To: Isak Lichtenstein <Isak.Lichtenstein@kistler.com>
Cc: "yocto@yoctoproject.org" <yocto@yoctoproject.org>
Subject: Re: Bash parser
Date: Wed, 16 Jul 2014 12:14:27 -0400 [thread overview]
Message-ID: <53C6A4E3.2050701@ti.com> (raw)
In-Reply-To: <91B4C1B91AAEFD42AC985EA0F3D4E66886164990@kihagwinex01.int.kistler.com>
On 07/16/2014 06:32 AM, Isak Lichtenstein wrote:
> 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.
Ubuntu default login shell is bash.
Default for /bin/sh is to link to dash.
So shell scripts that use
#!/bin/sh
will execute with dash.
You may have changed this on your machine and don't remember.
Many developers do.
I just checked a fresh 14.04 to make sure my knowledge is up to date.
ls -l /bin/sh
>>
>> 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
>
next prev parent reply other threads:[~2014-07-16 16:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-16 9:36 Bash parser Isak Lichtenstein
2014-07-16 9:53 ` Olof Johansson
2014-07-16 10:32 ` Isak Lichtenstein
2014-07-16 16:14 ` William Mills [this message]
2014-07-21 11:32 ` Paul Eggleton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53C6A4E3.2050701@ti.com \
--to=wmills@ti.com \
--cc=Isak.Lichtenstein@kistler.com \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.