Posted by comp.lang.tcl on 11/25/06 18:11
Bryan Oakley wrote:
> comp.lang.tcl wrote:
> > set cannotRunPHP [catch {exec "echo '$php' | php" >@stdout
> > 2>&stderr} errorMsg]
>
> You need to re-read the man page on exec. The first argument to exec is
> a filename that will be exec'd; it is not a command line. If you want to
> run a command line you should exec a command line processor (/bin/sh,
> command.com, whatever).
>
> Since "php" is what you want to exec, and $php is what you want to send
> to its stdin, use "<<" (documented on the exec man page):
>
> if {[catch {exec php << $php} result]} {
> puts "error exec'ing php: $resulut"
> } else {
> puts "php result: $result"
> }
Now I get this error:
couldn't execute "php": no such file or directory
When I try this:
[TCL]
set cannotRunPHP [catch {exec exec php << $php >@stdout 2>&stderr}
errorMsg]
if {$cannotRunPHP} {
puts $errorMsg
return {}
} else {
if {![IS_LIST $contentsList]} { set contentsList [split
$contentsList] }
if {[llength $contentsList] == 0} { lappend contentsList {?} }
return [lrange $contentsList [expr {[lsearch -exact $contentsList
"?"] + 1}] end]
}
[/TCL]
Wow this should only take an hour, it's taken 3 days so far!
Phil
>
> You can read a wiki page on the subject here: http://mini.net/tcl/exec
[Back to original message]
|