Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Unir Varios Comandos Terminal Desde Gambas [SOLUCIONADO]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Unir Varios Comandos Terminal Desde Gambas [SOLUCIONADO] 
 
Hola gente, antes de nada os doy gracias por pasaros a leer mi problema.

Estoy trabajando en un pequeño menu y lo que quiero hacer simplemente es hacer botones para que al darles click se instale x programa por ejemplo:

Gnome 3: y el codigo que tiene es este:

 Shell "xterm -e sudo add-apt-repository ppa:gnome3-team/gnome3-next -y"
 Shell "xterm -e sudo add-apt-repository ppa:gnome3-team/gnome3-staging -y"
 Shell "xterm -e sudo apt-get update -y"
 Shell "xterm -e sudo apt-get install gnome-shell gnome-shell-extensions -y"

Funcionar funciona el problema es que cada linea abre una terminal, mi pregunta es ¿Hay alguna forma de juntar todos los comandos en uno solo? O hacer que se vayan instalando 1 en 1, es decir, cuando termine el primer comando salte al segundo.
 



 
atonidas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Unir Varios Comandos Terminal Desde Gambas 
 
¿por qué usas xterm?
símplemente

Shell "echo " & miclave_de_root & "| sudo -S add-apt-repository ppa:gnome3-team/gnome3-next -y"


debería bastar
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Unir Varios Comandos Terminal Desde Gambas 
 
Hola shordi gracias por la ayuda, si uso tu comando me dice:
Identificador desconocido: miclave_de_root en Fmain.class:204.

He estado usando xterm por lo que he leido por internet ya que soy recien nuevo en gambas.
 



 
atonidas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Unir Varios Comandos Terminal Desde Gambas 
 
Hola atonidas

Primero de todo, deberías aprender lo que es una variable. En el caso que nos ocupa, "miclave_de_root" evidentemente es el nombre de una variable que contiene la clave de root que previamente habrías asignado a dicha variable. Podría haberse llamado de cualquier otro modo, pero si aún no entiendes lo más básico y fundamental de la programación, te recomendaría la lectura del libro de gambas que está disponible en nuestra sección de descargas.

Está claro que un comando al que le precede "sudo" te va a pedir la contraseña de root para poder ejecutarse, así que en bash esa es la forma de pasar la contraseña sin tener que teclearla en ese mismo momento. Evidentemente almacenar la contraseña implica bastante riesgo de seguridad, pero eso ya cada uno tendrá que lidiar con una solución aceptable, como borrar el contenido de la variable justo después de usarla.

La forma de pedir la contraseña antes de poder ejecutar los comandos puede ser mediante un InputBox o mediante un diálogo específico que tú hagas con un formulario modal y un texbox para contraseñas. En el shell de Bash (o de Dash), la forma de pasar la contraseña en la misma orden es usando un pipe con echo contraseña '|' y a continuación la orden a ejecutar. Se pueden concatenar varias órdenes seguidas mediante el operador &&. Así que, creo que el siguiente código podría servir para lo que necesitas, pero recuerda que debes profundizar más en el lenguaje estudiando un poco el libro y los ejemplos.

Public Sub Button1_Click()
    'el código que vaya aquí se ejecutará
    'el pulsar el botón

    Dim contrasena As String
    contrasena = InputBox("Introduce la contraseña de administrador", "Permiso Requerido")
    If contrasena Then
       Shell "echo " & contrasena & " | sudo -S add-apt-repository ppa:gnome3-team/gnome3-next -y "
       "&& sudo -S add-apt-repository ppa:gnome3-team/gnome3-staging -y "
       "&& sudo -S apt-get update -y "
       "&& sudo -S apt-get install gnome-shell gnome-shell-extensions -y"
    Endif

End


Por supuesto, esta no es la única forma de hacerlo. En tu sistema seguramente tendrás disponible el comando "gksudo" o "kdesudo", que es como sudo pero de forma gráfica. Sustituyendo sudo por uno de los dos citados, y prescindiendo de la parte "echo ... contraseña" es una forma bastante segura de hacerlo, pero ya depende de lo que el usuario final tenga instalado en su distribución.

Por cierto, bienvenido a la Comunidad, esperamos que aprendas y disfrutes aquí de este potente lenguaje.

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Unir Varios Comandos Terminal Desde Gambas 
 
Muchas gracias por la ayuda a todos, me ha servido y mucho ya puedo continuar con la construccion de mi aplicacion. Por cierto me voy a mirar la guia que me has dicho. Por mi parte este tema se puede dar por solucionado
 



 
atonidas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Unir Varios Comandos Terminal Desde Gambas 
 
Me alegro que te haya servido. Si te surgen dudas, por aquí estamos para ayudarte.

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Gambas Y Comandos Via Ssh (SOLUCIONADO) Pablo-GNU General 13 Jueves, 24 Junio 2010, 23:13 Ver último mensaje
abarzuaf
No hay nuevos mensajes Rellenar Varios Combos De Varios Formulari... CanihoJR General 9 Martes, 12 Junio 2012, 21:44 Ver último mensaje
luisrel
No hay nuevos mensajes Programa Desarrollado En Gambas 3.1 Termin... jousseph Aplicaciones/Fragmentos de Código 8 Lunes, 30 Noviembre 2015, 10:07 Ver último mensaje
jousseph
No hay nuevos mensajes ¿Una Rutina Para Unir Varios .odt En Uno ... shordi General 46 Viernes, 22 Septiembre 2017, 16:14 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron