awk - print - tcl caracteres adicionales después de llaves
awk print (1)
Según la página man de exec (n), debe reemplazar las comillas simples por llaves. También necesita []
alrededor del exec
para invocarlo:
set size [exec curl -s -3 --ftp-ssl -k {ftp://xxx:[email protected]:2300/source/} | grep //.r | awk {{print $5}} | awk {{ SUM += $1} END { print SUM/1024/1024 }}]
Dicho esto, no es necesario invocar grep
o awk
en absoluto. Todo lo que haga con ellos aquí se puede lograr dentro del código Tcl:
proc exact {nick host handle channel text} {
global db_handle network;
set status 0
set error [catch {
set resp [exec curl -s -3 --ftp-ssl -k {ftp://xxx:[email protected]:2300/source/}]
} results options]
if {$error} {
set details [dict get $options -errorcode]
if {[lindex $details 0] eq "CHILDSTATUS"} {
set status [lindex $details 2]
putnow "PRIVMSG $channel :curl error $status"
}
}
set size 0
foreach line [split $resp /n] {
if {[string match {*//.r*} $line]} {
incr size [lindex $line 4]
}
}
putnow "PRIVMSG $channel :source has [expr {$size/1024/1024}]"
}
(Supongo que te #chnnel
$channel
lugar de a #chnnel
).
Tengo este error Tcl error: caracteres adicionales después de llave cerrada
proc exact {nick host handle channel text} {
global db_handle network;
set size exec curl -3 --ftp-ssl -k ftp://xxx:[email protected]:2300/source/ | grep //.r | awk ''{print $5}''| awk ''{ SUM += $1} END { print SUM/1024/1024 }''
putnow "PRIVMSG #chnnel :source has $size"
}