Mark, this is indeed a bug. Read carefully my example and try it. It fails because of the ${const.dollar}(cat /etc/hosts), eg only because ${const.dollar} is followed by ( ... ). In your example you don't have that, $(const.dollar)y works fine because it does not reproduce the bug at all. With my example, cf-engine will **refuse** to run the command and launch the shell.
Please try with my example and see for yourself. On Thu, Dec 10, 2009 at 11:01 PM, Mark Burgess <mark.burg...@iu.hio.no>wrote: > > This is not a bug in cfengine, it is the shell that is turning the $ into > nothing. > Cfengine interprets the string correctly and passes it to the shell as this > shows. > > "MyClass" expression = "MyClass" expression => returnszero("/bin/echo x > $(const.dollar)y", "useshell"); > > x > > > returnszero("/bin/echo x $(const.dollar)y", "noshell"); > > x $y > > > Jean-Noël Rivasseau wrote: > > Hello, I discussed this issue in the help ML before but it really > > appears like it is a bug. > > > > Basically, cf-engine chokes on ${const.dollar}( ... ) in command strings > > passed to returnszero function. However $() in a shell (Bash) can be > > very useful as it triggers a subshell. There is a bug in the parser > > somewhere as this example demonstrates: > > > > body common control > > { > > bundlesequence => {"configurePhase"}; > > } > > > > bundle agent configurePhase > > { > > classes: > > "MyClass" expression => returnszero("/bin/echo > > ${const.dollar}(cat /etc/hosts)", "useshell"); > > "MyClass2" expression => returnszero("/bin/echo `cat > > /etc/hosts`", "useshell"); > > reports: > > MyClass:: > > "Hi World"; > > MyClass2:: > > "Hello World"; > > } > > > > > > MyClass2 will correctly be defined, but not MyClass as cf-engine will > > refuse to run the first command - the parser gets confused and attempts > > to solve 'cat /etc/hosts' as a variable it seems. I checked this on > > today's SVN and the problem is still present. Please correct it :) > > > > Cheers > > Jean-Noel > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Bug-cfengine mailing list > > Bug-cfengine@cfengine.org > > https://cfengine.org/mailman/listinfo/bug-cfengine >
_______________________________________________ Bug-cfengine mailing list Bug-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/bug-cfengine