interactuar con shell

Iniciado por [u]nsigned, 24 Julio 2010, 09:09 AM

0 Miembros y 1 Visitante están viendo este tema.

[u]nsigned

hola..tengo una duda:

como se podria interactuar con una shell? me re fiero q que por ejemplo hay dos tipos de programas: los que se ejecutan de comienzo a fin y producen su salida sin esperar ninguna intervencion del user, ej

Código (bash) [Seleccionar]
cat /etc/resolv.conf

pero por otro lado tenemos programas "interactivos", es decir que esperan que el use haga algo para actuar(o dejar de hacerlo) como less o top. queria saber por ejemplo si hay alguna forma de llamar a top,capturar a este en cierto tiempo (capturar la terminal como texto o directamente la info en binario) y luego esperar unos 15 seundosy volver a hacerlo..es posible?  :huh:

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

[u]nsigned

NADIE?  :-X :P :-\

Deberia reformular mi pregunta..no se ha entendido..nadie que me tire un cable de tantos linuxeros que hay en el foro?  :P

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Fayre

Perdón por revivir el post pero solo es de 4 días asique, alomejor ya lo has solucionado, nose si te he entendido muy bien que quieres que el programa te pregunte que hacer y conforme lo que le indiques haga una cosa o otra?. Para que guarde lo que le escribas seria:

read variable

donde variable será el contenedor de lo que le pongas luego esto se puede pasar por un if para saber que has puesto. Si no era esta tu pregunta por favor digalo.

Salu2

[u]nsigned

Gracias por responder, pero lo que quiero es un especie de curl pero para manejar demonios (osu frontend n version mando binario, como por ejemplo "top"..vamos, me refiero al los comandos orientados a eventos del usuario, no a aprametros o sucesos..se entiende?..me gustaria  una especie de framwok para la terminal linux y en especial este tipo de programas..

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Zazú

Te ayudaria pero la verdad no te entendí mucho, trata de reformular la pregunta siendo mas especifico  :¬¬

[u]nsigned

A ver, voy a dar un ejemplo de lo que quiero hacer.

lanzo top y a su vez registro lamarca timestamp en que lo lance (seria de la creacion del proceso). luego esperar, digamos unos 5 segundos, y capturar toda la pantalla, no en una imagen, sino literalmtente capturar la pantalla como lo que es..un array bidimensional de caracteres (obiamente hablo de una CLI). Registrar esa "captura" (guardarla en una variable en momeria o un archivo (en linux seria lo mismo  :xD) y tambien guardale en tiempo en que la hice...y asi digamos hacer una captura automaticamente cada 10 segundos. No me sirve cron o algo de ese tipo, necesito que sea un programa el que manipule el comportamiento( cada cuanto capturar)..bien eso seria lomas basico..lo que no sabria sera capturar la pantalla.

Luego si ya me gustaria algomas complejo como enviarle ordenes (parametros) a dicha terminal corriendo top, por ejemplo cambiar de asc a desc, el criterio de listado ec..., y sacarle capturas tambien.

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

luinuz

#6
En vez de top no seria mejor que usaras ps?
Te pongo un par de ejemplos, uno con top y otro con ps. No se si te valdran pero creo que se aproxima a lo que buscas;

Ejemplo con ps;

while true; do
   timestamp=$(date +%Y%m%d-%H%M)
   pa aux > captura_${timestamp}.txt
   sleep 5
done


Ejemplo con top;

while true; do
   timestamp=$(date +%Y%m%d-%H%M)
   top > captura_${timestamp}.txt
   killall -9 top
   sleep 5
done


Para hacer capturas de pantalla mirate este sencillo screenshooter en bash
http://luinuz.comze.com/mi_web/shell_scripts.php#9
http://luinuz.x10hosting.com/mi_web/shell_scripts.php#9

Saludos.