Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos

Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Artículo
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 usuario Enviar mensaje privado  
ivanolete [ Jueves, 08 Enero 2015, 20:53 ]
 


Al Ejecutar Shell Script Desde Gambas No Toma Los Parametros Completos
Comentarios
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 usuario Enviar mensaje privado  
ivanolete [ Jueves, 08 Enero 2015, 20:59 ]
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.



 
jsbsan - Ver perfil del usuario Enviar mensaje privado  
jsbsan [ Jueves, 08 Enero 2015, 21:23 ]
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 usuario Enviar mensaje privado  
shordi [ Jueves, 08 Enero 2015, 22:05 ]
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 usuario Enviar mensaje privado  
ivanolete [ Viernes, 09 Enero 2015, 00:10 ]
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 usuario Enviar mensaje privado  
shordi [ Viernes, 09 Enero 2015, 00:48 ]
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 usuario Enviar mensaje privado  
ivanolete [ Viernes, 09 Enero 2015, 02:43 ]
Mostrar mensajes anteriores:    
 
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


 



 

cron