Olá!
dando uma googlada inferi que está usando Clisp. Bom, primeiro vai a solulão
em SBCL, que é a distribuição que eu uso.
> (run-program "/bin/ps" '("aux") :output *standard-output*)
para imprimir no terminal ou
> (with-output-to-string (s)
(run-program "/bin/ps" '("aux") :output s))
para salvar o valor numa string.
Não tenho Clisp instalado, mas lendo a documentação, vi que
run-shell-command "imprime no terminal" (default), retorna um objeto do tipo
"input stream" ou nada, dependendo se o valor de :output é :terminal,
:stream ou nil, respectivamente.
No seu caso, a saída do comando é imprimida no terminal. O que é salvo em
*string* é o valor de retorno de "ps aux".
Uma possível solução seria:
> (defun stream->string (stream)
(with-output-to-string (s)
(loop for line = (read-line stream nil nil)
while line do (write-line line s))))
> (setf *string* (stream->string (run-shell-program "ps aux" :output
:stream))
[]'s
2011/4/6 Cooler_ <[email protected]>
> peço ajuda ao pessoal de modo sanar meu problema
> estou tentando pegar uma saída de um comando e atribuir em uma
> variável
>
> veja que estou fazendo:
>
> (setq *string* (run-shell-command "ps aux") )
> (format t "~s" *string*)
>
> retorno;
>
> 0
> NIL
>
> estou precisando guardar o resultado de "ps aux" numa string ou
> vector.
>
> se alguém poder ajudar agradeço
>
> Cheers
>
> --
> You received this message because you are subscribed to the Google Groups
> "Lisp-br" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/lisp-br?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Lisp-br" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/lisp-br?hl=en.