I am having a very difficult time getting the simplest shell
one-liners going within ExecShellResult.  Here is an example:

prev_host = ( ExecShellResult(/bin/hostname -f | /bin/sed -n
's/\..*//p' | /bin/awk -F- '{print $1 "-" $2-1 }') )

I've found that I can't seem to have any form of a quote in there, and
the backslashing rules aren't very clear to me.  So this works, but it
took me a very long time to get it working to that point:

prev_host = ( ExecShellResult(/bin/hostname -f | /bin/sed -n
s/\\..\*//p | /bin/awk -F- {print} ) )

BUT  I can't get to the essential awk statement where I am adjusting
the names of the servers.  In another statement I fiddle with IPs in a
similar way, and it all works via shell script, but it is all a silent
failure when inserted within ExecShellResult.

Similarly I am trying to set classes like this:

valid_host = ( ReturnsZero(/usr/bin/test -n "`/bin/hostname | /bin/sed
-n '/svr-.*[0-9]/p' `" ) )

Please help me get my one-liners working, or set me on a better path!

Brian McQueen

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
http://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to