|
Página 1 de 1
|
Terminal, Como Enviarle Un Comando
Autor |
Mensaje |
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Terminal, Como Enviarle Un Comando
Hola a todos.
Estoy tratando de enviarle un comando a la terminal de gambas pero no lo logro. rpobe con .print .exec pero no funcionan o estoy haciendo algo mal.
La idea es que al abrir la terminal se escriban uno orden de instalación de paquetes de dependencias.
Saludos.
|
#1 Jueves, 13 Julio 2017, 01:19 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Terminal, Como Enviarle Un Comando
El procedimiento para enviar datos a un Terminal (externo al nuestro programa gambas) es muy complejo, pero no imposible.
**** Debe, pero, ser dicho que los comandos escritos en esta manera (es decir: enviados al Terminal por codigo) no funcionan ! ****
Funcionan solo si escritos en el Terminal por teclado... por manos tuyas.
Pero... por lo que atañe a tu pregunta, este Terminal ya está abierto o será abierto por el programa gambas ?
Si es el segundo caso, el Terminal puede ser abierto usando " Shell" o el comando "Desktop.OpenTerminal".
última edición por vuott el Jueves, 13 Julio 2017, 18:30; editado 4 veces
|
#2 Jueves, 13 Julio 2017, 17:11 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Terminal, Como Enviarle Un Comando
...de todos modos, los datos (que siempre serán de tipo String), deben ser enviados a un Terminal usando su file-device especial (pts: pseudo-terminal slave), que tu puedes ver en la ruta "/dev/pts".
Cuando se abre un Terminal, el sistema crea un file-device pts que se refiere a el Terminal. (Esto vale tambien para la consola del IDE de gambas !)
Pero nosotros no sabemos cual file-device en la ruta " /dev/pts" atañe al Terminal que nos interesa. Por eso, tenemos que:
1) individuar el Terminal por el numero de identificación de su proceso, buscando la palabra " bash", contenida por el archivo de sistema " comm" que pertenece a la carpeta del proceso del Terminal.
2) luego, podemos abrir con "For Write" el archivo "...../fd/1", que pertenece a la carpeta del proceso del Terminal y que es un enlace al especifico archivo dispositivo "pts" del nuestro Terminal.
Una modalidad podria ser esta (...está claro que el Terminal ya debe estár abierto):
...pero para tu objetivo final no resolverás nada.
|
#3 Jueves, 13 Julio 2017, 18:28 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Terminal, Como Enviarle Un Comando
No entiendo esa necesidad de enviar comandos a un terminal desde otro programa, para eso está 'shell' o 'exec'. ¿De verdad el usuario tiene que mirar cómo se ejecutan comandos en una consola sin su intervención?
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Jueves, 13 Julio 2017, 19:43 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Terminal, Como Enviarle Un Comando
No entiendo esa necesidad de enviar comandos a un terminal desde otro programa...
Sì... en efecto tus perpejidades son pertinentes.
Un envio de datos al Terminal puede tener sentido quierendo ver aquellos datos en una ventana (del Terminal) externa.
" Per multos annos" yo estudié este problema del envio y uso de datos a un Terminal, y como ya he dicho, lo escribir un comando en el Terminal por codigo no tiene utilidad para la función del comando... el comando no funcionará !
|
#5 Jueves, 13 Julio 2017, 20:40 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Terminal, Como Enviarle Un Comando
Vuott, muchas gracias por la respuesta.
Para aclarar perplejidades, que la verdad que si que es rara la pregunta, es porque el motivo de esta se debe a que, al correr desde el ide una aplicación que, o bien se esta desarrollando o se ejecuta desde el ide por otra razón, no es posible aplicarle las dependencias que se colocan a la hora de crear el paquete .deb, por ejemplo.
La solución es que se me ocurrió, como se sabe lo que debe estar instalado en el sistema es primero verificar que ya este, luego lo que no este instalarlo, y es aquí donde entra este asunto de enviarle los comandos a la terminal.
En un principio lo hacia abriendo una terminal y una vez abierta le mandaba los comandos de instalación de paquetes por medio de Desktop.sendkeys, pero este método me daba problemas a veces en algunos escritorios que cambiaban "-" por "/" y además como esto lo hago orientado a los desarrolladores que van a usar el programa para modificarlo y meterle mano, me parece mas agradable que se les presente una terminal con lo que hay que instalar ya escrito pero que el desarrollador pueda ver, y en ultimo caso decidir si lo instala o no, o si instala una parte de las dependencias.
Eso es un poco la onda.
Saludos.
|
#6 Viernes, 14 Julio 2017, 00:34 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Terminal, Como Enviarle Un Comando
Uhmmm... quizás... podría ser util crear y gestionar un Terminal con los recursos del Componente gb.term .
|
#7 Viernes, 14 Julio 2017, 09:56 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|