This issue was resolved by backslash-escaping the '&'.
So this works:

  alreadyinstalled_version = &shell("tcsh -c '@alreadyinstalled_dir@/bin/mpinfo 
-V |\& cut -d\" \" -f6-8'")

-Ethan


On Mon, Sep/17/2007 12:12:48PM, Ethan Mallove wrote:



> I am stuck trying to capture STDERR using &shell().
> I am able to capture it using tcsh, but since &shell() 
> is sh-based, I need some sh-magic to get this working.
> 
>   tcsh $ mpinfo -V |& cut -d' ' -f6-8
>   10 Mar 2006
>   bash-3.00$ /opt/SUNWhpc/HPC6.0/bin/mpinfo -V 2>&1 cut -d' ' -f6-8
>   mpinfo: Sun HPC ClusterTools 6 10 Mar 2006 CRE 3.0
>   bash-3.00$ tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |& cut -d" " -f6-8'
>   10 Mar 2006
> 
> No luck using "tcsh -c" with &shell().
> 
>   Value: bogus
>   Evaluating: &shell("tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |& cut -d\"
>      \" -f6-8'")
>   Replacing vars from section MTT: &shell("tcsh -c
>      '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |& cut -d\" \" -f6-8'")
>   --> Prefix now: 
>   --> Remaining (after &): shell("tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V
>      |& cut -d\" \" -f6-8'")
>   --> Found func name: shell
>   --> Found beginning of arguments: "tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo
>      -V |& cut -d\" \" -f6-8'")
>   --> Initial param search: "tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |&
>      cut -d\" \" -f6-8'")
>   --> Loop: trimmed search: "tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |&
>      cut -d\" \" -f6-8'")
>   --> Examining char: " (pos 0)
>   --> Found beginning quote
>   --> Found last quote
>   --> Examining char: ) (pos 66)
>   --> Found end of arg (pos 66)
>   Found argument: "tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |& cut -d\" \"
>      -f6-8'"
>   --> Remainder: 
>   --> Calling: $ret = MTT::Values::Functions::shell("tcsh -c
>      '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |& cut -d\" \" -f6-8'");
>   &shell: got tcsh -c '/opt/SUNWhpc/HPC6.0/bin/mpinfo -V |& cut -d" " -f6-8'
>   &shell: returning 
>   --> After eval(string), remaining: 
>   Replacing vars from section MTT: 
>   Got final version before escapes: 
> 
> ???
> 
> -Ethan
> 
> _______________________________________________
> mtt-users mailing list
> mtt-us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/mtt-users

Reply via email to