Process substitution into loop
Steve Langasek
steve.langasek at ubuntu.com
Fri Jun 10 04:05:45 UTC 2011
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})
> 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
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/
slangasek at ubuntu.com vorlon at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/upstart-devel/attachments/20110609/190057d0/attachment.pgp>
More information about the upstart-devel
mailing list