Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
Hola, ando haciendo un sistema que lee  huellas desde un dispositivo UrU 4500 con una interfaz en gambas. El problema es que tengo un programa escrito en C que hace uso de la libreria "libfprint", y buenoel programa en C funciona bien cuando lo invoco desde la linea de comandos de PIDORA.

El problema surge cuando invoco el mismo programa desde gambas con "EXEC" o "SHELL" ya que si se invoca pero no me toma todos los argumentos como en la linea de comandos.

Ya he intentado varias notaciones,convertir el charset, hacer un shell script... y nada.  

¿¿Alguna idea???


A continuación muestro el código:
' gambas class file

Library "libfprint:0"

Private Extern fp_init() As Integer
Private Extern fp_exit()


Public Sub _new()

End

 
Public Sub Form_Open()
 Dim fecha As Variant
  Me.Center
 
  fecha = Format(Now, "dd/m/yy")
  lcdfecha.Text = fecha
  
  img_mostrar_scan.Hide
  
  reanudar_button2.Hide
 
End


Public Sub scanear_dedo_button_Click()


  label1.Text = "Coloque su dedo índice derecho en el lector" '
  scan_dedo_imagen()
 
 
End

Public hproc As Process
Public Sub scan_dedo_imagen()

Dim devlib As Integer ' resultado de existencia de libreria de escaneo de huella
  
  
  devlib = fp_init() ' deteccion de si tenemos libfprint instalada, para poder invocar el programa
    If (devlib < 0) Then
      Message.Error("Libreria de escaneo no instalada/detectada, favor revisar o reportar fallo")
      Return
    Else
      Print "Liberia encontrada, command line utils can be invocado"
    
      fp_exit()
    Endif
 
 
  hproc = Shell "/var/www/html/./pscript" For Input As "lectura"  
  'hproc = Exec ["/var/www/html/escanerdedo", "verify", "rojo.pgm"] For Input As "lectura"  'está es otra forma en que lo invoqué
  'hproc = Shell"/var/www/html/escanerdedo verify rojo.pgm" For Input As "lectura"  'está es otra forma en que lo invoqué
End

Public Sub lectura_Read() ' Rutina que muestra la ultima salido de la consola a partir de la ejecucion lectura en hproc
  
  Dim salida As String
  Line Input #Last, salida
  Print "-->" & salida
  If salida == 1 Then
    Message.Info("La Huella coincide")
        
    
    label1.Text = ""
    
  Endif
 
  If salida == 0 Then 'este if mantiene recursiva la ejecucion de el proceso hasta que se valide la huella
   Message.Info("La huella no coincide, vuelva a ponerla por favor")
   hproc = Shell "/var/www/html/./pscript" For Input As "lectura"
   'hproc = Exec ["/var/www/html/escanerdedo", "verify", "rojo.pgm"] For Input As "lectura"  'está es otra forma en que lo invoqué
   'hproc = Shell"/var/www/html/escanerdedo verify rojo.pgm" For Input As "lectura"  'está es otra forma en que lo invoqué
 Endif
End


Public Sub timReloj_Timer()

  lcdhora.Value = Hour(Now)
  lcdminutos.Value = Minute(Now)
  lcdsegundos.Value = Second(Now)

End


Public Sub reanudar_button2_Click()

   scan_dedo_imagen("ivanol")

End

 

 



 
última edición por ivanolete el Jueves, 08 Enero 2015, 21:10; editado 1 vez 
ivanolete - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
Olvidé comentar que en el shell script esta escritá la misma linea


/.../escanerdedo verify rojo.pgm


Cuando invoco el shell script funciona bien

pero cuando lo invoco como proceso desde gambas no toma el argumento rojo.pgm
 



 
ivanolete - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
Hola  ivanolete:

Citar:
rojo.pgm

¿donde esta ese archivo? Seguramente tienes que indicar la ruta donde este.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
A parte de lo que jsbsan te indica, el path "/var/www/html/./pscrip" es erróneo. Seguramente funcione, pero el . es una referencia al directorio actual, es decir al propio /var/www/html
por tanto es redundante. Bastaría con "/var/www/html/pscrip"

Saludos.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
Gracias por sus respuestas.

rojo.pgm es un argumento que cae como "char" en el proceso escrito en C.


Y sip, graciar por hacer notar la redundancia, eso lo puse como muestra de las  distintas formas en que escribí la ruta.


AHORA, LES COMENTO:

Acabo de experimentar que cuando soy super usuario en root y corro el shell script me trae la respuesta esperada, pero si invoco el mismo script como otro usuario me da el mismo comportamiento que con gambas. Ya le he concedido todos los permisos al proyecto y a los archivos involucrados, pero sigue sin darme el resultado esperado desde gambas.... ¿Alguna sugerencia con respecto a la ejecución de procesos con "EXEC" O "SHELL" sus permisos??

                                                                                  
 



 
ivanolete - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
Eso es complicado de contestar sin conocer todo el script, entorno y demás... pero se soluciona ejecutándolo con permisos de super usuario.

Prueba aquello de

Shell "echo clavedeusuario | sudo -S script y parametros"

Naturalmente el usuario cuya clave envíes con echo ha de ser uno con permiso de sudoer.

Saludos
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos 
 
He seguido tu sugerencia, Shordi.... Y ha funcionadoooooo  

GRACIAS

así deje el escript:


#!/bin/bash
echo raspberry<PIPE>sudo -S  /ruta_del_script/escanerdedo verify $1
 



Por el momento así lo dejaré , pero continuaré documentandome con  respecto a los permisos de usuario en el sistema.
 



 
ivanolete - 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 Ejecutar Comandos Shell Desde Gambas Como ... Elena General 6 Viernes, 03 Febrero 2012, 03:30 Ver último mensaje
Agamenon
No hay nuevos mensajes ¿ Es Posible Ejecutar Un Script De Gambas... Shell General 2 Jueves, 31 Julio 2014, 20:54 Ver último mensaje
Shell
No hay nuevos mensajes Ejecutar Script De Python En Gambas vuott General 7 Miercoles, 08 Febrero 2017, 18:08 Ver último mensaje
vicr
No hay nuevos mensajes Exec O Shell Al Ejecutar Un Script SH Me M... CanihoJR Controles/Librerías/Componentes 3 Sabado, 29 Diciembre 2018, 19:16 Ver último mensaje
CanihoJR
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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