-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 14/06/11 04:49, Grail Dane wrote:
> Well, I can confirm that setting the interpreter to /bin/sh does not support
> process substitution as
> I have run the following script
> under both:
>
> while read -r DEVICE
> do
> echo ip link set dev $DEVICE up
> done< <(ip link | awk '/^[0-9]/ && gsub(/:/,""){print $2}')
>
> Under bash I get:
>
> ip link set dev lo up
> ip link set dev eth0 up
> ip link set dev sit0 up
>
> Under sh I get:
>
> line 6: syntax error near unexpected token `<'
> line 6: `done< <(ip link | awk '/^[0-9]/ && gsub(/:/,""){print $2}')'
>
> I also have not been able to find a way to successfully implement the
> Cookbook option to change the
> default shell.
> To this end I mean that if I add the CFLAGS option prior to compiling,
Hi Grail,
You need to set CFLAGS prior to running *configure* (before the compile). So,
you will need to do:
export CFLAGS=...
./configure ...
make
Regards,
James.
> the output once running:
>
> start network-interfaces
>
> Yields the same type of error as the script above:
>
> /proc/self/fd/10: line 6: syntax error near unexpected token `<'
> init: network-interfaces main process (27800) terminated with status 2
> start: Job failed to start
>
> I can confirm that the here document idea does work so I am left with the
> fact that the CFLAGS option
> was some how no interpreted :(
>
> Once compiled and installed is there any way to check what shell it thinks is
> the default?
>
> Cheers
> grail
>
> ----------------------------------------------------------------------------------------------------
> Date: Mon, 13 Jun 2011 18:15:20 -0700
> Subject: Re: FW: Process substitution into loop
> From: [email protected]
> To: [email protected]
> CC: [email protected]
>
> Note the phrase *startup behaviour* in the paragraph - bash still supports
> bashisms in its scripts
> when invoked as sh (after all, that's where the entire historical problem
> with them comes from)
>
> On Mon, Jun 13, 2011 at 4:56 PM, Grail Dane <[email protected]
> <mailto:[email protected]>> wrote:
>
> Hi James
>
> Thanks very much for the reply. As you can probably guess the typo is in
> the email but not in
> the actual script. I did further testing and as per the bash install
> instructions:
>
> *sh*
>
>
>
> A symlink to the *bash* program; when invoked as *sh*, *bash* tries to
> mimic the startup
> behavior of historical versions of *sh* as closely as possible, while
> conforming to the POSIX
> standard as well
>
>
>
> This would indicate that it is a bash builtin feature to use only POSIX
> compliant options.
> So from the Cookbook you may need to edit the following from the section
> you pointed me to:
>
> If you wish to change this, you can either make /bin/sh a symbolic link
> to your chosen shell
>
> As this does not work as expected in this case and it may be similar for
> other shells to.
>
> I will try the workaround of adding it as the default shell in the build
> and let you know how it
> goes :)
>
> Cheers
> grail
>
> > Date: Fri, 10 Jun 2011 11:22:12 +0100
> > From: [email protected] <mailto:[email protected]>
>
> > To: [email protected] <mailto:[email protected]>
> > CC: [email protected]
> <mailto:[email protected]>
> > Subject: Re: Process substitution into loop
> >
> > Hi Grail,
> >
> > On 10/06/11 05:46, Grail Dane wrote:
> > >
> > >
> > >> Date: Thu, 9 Jun 2011 21:05:45 -0700
> > >> From: [email protected] <mailto:[email protected]>
> > >> To: [email protected] <mailto:[email protected]>
> > >> CC: [email protected]
> <mailto:[email protected]>
> > >> Subject: Re: Process substitution into loop
> > >>
> > >> On Fri, Jun 10, 2011 at 03:53:15AM +0000, Grail Dane wrote:
> > >> > Just wondering, as I can't find by googling, if it is at all
> possible to
> > >> > do a processsubstitution into a while loop within an upstart
> script?
> > >>
> > >> > Example:
> > >> > while read -r DEVICE
> > >> > do
> > >> > ip link set dev $DEVICE up
> > >> > done< <(ip link | awk '/^[0-9]/ && !/UP/ && gsub(/:/,""){print $2})
> > You have an error in your script: it is missing the closing tick (see
> below).
> >
> > >>
> > >> > When issuing the start command on the script I get:
> > >> > /proc/self/fd/10: line 6: syntax error near unexpected '<'init:
> > >> > network-interfaces main process (1367) terminated with status
> 2start: Job
> > >> > failed to start Would appreciated if someone would identify if i
> have done
> > >> > something wrong or if this not a supported feature?
> > >>
> > >> The <() syntax is not part of the POSIX standard, it's a bash
> extension.
> > >> Upstart uses /bin/sh to interpret scripts, as is customary; chances
> are
> > >> you're running on a system where /bin/sh is not bash, and as a
> result this
> > >
> > > Actually /bin/sh is a symbolic link to bash on my system. Is there
> anyway to have bash as the
> > > shell used?
> >
> > script
> > /bin/bash <<EOT
> > while read -r DEVICE
> > do
> > echo "DEBUG: ip link set dev $DEVICE up" > /tmp/grail.log
> > done < <(ip link | awk '/^[0-9]/ && !/UP/ && gsub(/:/,""){print $2}')
> > EOT
> > end script
> >
> > Also, just for you :)...
> >
> > http://upstart.ubuntu.com/cookbook/#changing-the-default-shell
> >
> > Regards,
> >
> > James.
> >
> > >
> > >> syntax is not supported.
> > >>
> > >> A supported syntax would be:
> > >>
> > >> ip link | awk '/^[0-9]/ && !/UP/ && gsub(/:/,""){print $2}' |
> > >> while read -r DEVICE
> > >> do
> > >> ip link set dev $DEVICE up
> > >> done
> > >>
> > >> --
> > >> Steve Langasek Give me a lever long enough and a Free OS
> > >> Debian Developer to set it on, and I can move the world.
> > >> Ubuntu Developer http://www.debian.org/
> > >> [email protected] <mailto:[email protected]> [email protected]
> <mailto:[email protected]>
> > >
> >
>
> --
> upstart-devel mailing list
> [email protected] <mailto:[email protected]>
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/upstart-devel
>
>
- --
Cheers,
James.
- --
James Hunt
____________________________________
Ubuntu Foundations Team, Canonical.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk33HlMACgkQYBWEaHcQG9ctAwCfaJrG/Vyf4robYFV5lCwhzGwq
Sr0AnAwGL8UWMT9CC++/Zzh4ilFHCKmc
=kNrb
-----END PGP SIGNATURE-----
--
upstart-devel mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/upstart-devel