[Pacemaker] [PATCH 2 of 2] low: remove various bashisms

Simon Horman horms at verge.net.au
Tue Jul 13 02:02:25 UTC 2010


On Mon, Jul 12, 2010 at 12:13:45PM +0200, Lars Ellenberg wrote:
> On Mon, Jul 12, 2010 at 10:01:08AM +0900, Simon Horman wrote:
> > > # because its friday, I'll give you some irrelevant input,
> > > # doing it all in one pipe.  feel free to ignore ;-)
> > > 
> > > eval $(
> > > printf "Garbage ignored\nCPU Type: speedy\nCPU Speed: gonzales\nNumber Of Cores: you won't guess\nOther information: ignored\n"  |
> > > sed -n -e "
> > > 	s/^CPU Type: /cpu_type=/
> > > 	s/^CPU Speed: /cpu_speed=/
> > > 	s/^Number Of.*: /cpu_cores=/
> > > 	t shell_escape_and_print
> > > 	b
> > > 	: shell_escape_and_print
> > > 	s/'/'\\\\''/g
> > > 	s/=/='/
> > > 	s/\$/'/
> > > 	p
> > > 	"
> > > )
> > > echo "$cpu_type"
> > > echo "$cpu_speed"
> > > echo "$cpu_cores"
> > 
> > Can it be simplified slightly like this?
> 
> - t shell_escape_and_print
> - b
> - : shell_escape_and_print
> + T
> 
> Where t, b, :, are all in "original sed",
> and T is a "GNU sed specific addition".

That I didn't know :-)

> Well, yes, sure it can.
> But this all started in the name of "portability" (on a shell level).
> 
> Wether or not it is sensible to argue about shell level portability,
> or sed script level portability, or the availability of GNU tools
> well... leave that to some other day.

I vote for your original, more portable option.





More information about the Pacemaker mailing list